home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 March / PCWMAR09.iso / Software / Freeware / Adobe Media Player 1.6 / adobe_media_player.air / AMP.swf / scripts / mx / managers / WindowedSystemManager.as < prev    next >
Encoding:
Text File  |  2008-11-25  |  100.1 KB  |  2,959 lines

  1. package mx.managers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.Graphics;
  6.    import flash.display.InteractiveObject;
  7.    import flash.display.Loader;
  8.    import flash.display.LoaderInfo;
  9.    import flash.display.MovieClip;
  10.    import flash.display.Sprite;
  11.    import flash.display.Stage;
  12.    import flash.display.StageAlign;
  13.    import flash.display.StageScaleMode;
  14.    import flash.events.Event;
  15.    import flash.events.IEventDispatcher;
  16.    import flash.events.MouseEvent;
  17.    import flash.geom.Point;
  18.    import flash.geom.Rectangle;
  19.    import flash.system.ApplicationDomain;
  20.    import flash.text.Font;
  21.    import flash.text.TextFormat;
  22.    import flash.ui.ContextMenu;
  23.    import flash.utils.Dictionary;
  24.    import mx.core.EventPriority;
  25.    import mx.core.FlexSprite;
  26.    import mx.core.IChildList;
  27.    import mx.core.IFlexDisplayObject;
  28.    import mx.core.IFlexModule;
  29.    import mx.core.ISWFBridgeGroup;
  30.    import mx.core.ISWFBridgeProvider;
  31.    import mx.core.ISWFLoader;
  32.    import mx.core.IUIComponent;
  33.    import mx.core.SWFBridgeGroup;
  34.    import mx.core.Singleton;
  35.    import mx.core.Window;
  36.    import mx.core.mx_internal;
  37.    import mx.events.EventListenerRequest;
  38.    import mx.events.FlexEvent;
  39.    import mx.events.InterManagerRequest;
  40.    import mx.events.SWFBridgeEvent;
  41.    import mx.events.SWFBridgeRequest;
  42.    import mx.events.SandboxMouseEvent;
  43.    import mx.managers.systemClasses.EventProxy;
  44.    import mx.managers.systemClasses.PlaceholderData;
  45.    import mx.managers.systemClasses.RemotePopUp;
  46.    import mx.managers.systemClasses.StageEventProxy;
  47.    import mx.styles.ISimpleStyleClient;
  48.    import mx.styles.IStyleClient;
  49.    import mx.utils.EventUtil;
  50.    import mx.utils.NameUtil;
  51.    import mx.utils.SecurityUtil;
  52.    
  53.    use namespace mx_internal;
  54.    
  55.    public class WindowedSystemManager extends MovieClip implements ISystemManager, ISWFBridgeProvider
  56.    {
  57.       mx_internal var nestLevel:int = 0;
  58.       
  59.       private var currentSandboxEvent:Event;
  60.       
  61.       private var originalSystemManager:SystemManager;
  62.       
  63.       private var forms:Array;
  64.       
  65.       private var mouseCatcher:Sprite;
  66.       
  67.       private var _height:Number;
  68.       
  69.       private var dispatchingToSystemManagers:Boolean = false;
  70.       
  71.       private var strongReferenceProxies:Dictionary;
  72.       
  73.       private var _document:Object;
  74.       
  75.       private var _rawChildren:WindowedSystemRawChildrenList;
  76.       
  77.       private var _topLevelSystemManager:ISystemManager;
  78.       
  79.       private var _toolTipIndex:int = 0;
  80.       
  81.       private var idToPlaceholder:Object;
  82.       
  83.       private var _swfBridgeGroup:ISWFBridgeGroup;
  84.       
  85.       private var myWindow:Window;
  86.       
  87.       private var _toolTipChildren:WindowedSystemChildrenList;
  88.       
  89.       private var form:Object;
  90.       
  91.       private var _width:Number;
  92.       
  93.       private var initialized:Boolean = false;
  94.       
  95.       private var _focusPane:Sprite;
  96.       
  97.       private var _popUpChildren:WindowedSystemChildrenList;
  98.       
  99.       private var isStageRoot:Boolean = true;
  100.       
  101.       private var _fontList:Object = null;
  102.       
  103.       private var _window:Window = null;
  104.       
  105.       private var _topMostIndex:int = 0;
  106.       
  107.       private var topLevel:Boolean = true;
  108.       
  109.       private var weakReferenceProxies:Dictionary;
  110.       
  111.       private var _cursorIndex:int = 0;
  112.       
  113.       private var isBootstrapRoot:Boolean = false;
  114.       
  115.       mx_internal var _mouseY:*;
  116.       
  117.       mx_internal var _mouseX:*;
  118.       
  119.       private var _numModalWindows:int = 0;
  120.       
  121.       mx_internal var idleCounter:int = 0;
  122.       
  123.       private var _screen:Rectangle;
  124.       
  125.       private var _cursorChildren:WindowedSystemChildrenList;
  126.       
  127.       private var bridgeToFocusManager:Dictionary;
  128.       
  129.       private var _noTopMostIndex:int = 0;
  130.       
  131.       private var _applicationIndex:int = 1;
  132.       
  133.       private var isDispatchingResizeEvent:Boolean;
  134.       
  135.       private var eventProxy:EventProxy;
  136.       
  137.       mx_internal var topLevelWindow:IUIComponent;
  138.       
  139.       public function WindowedSystemManager(param1:IUIComponent)
  140.       {
  141.          forms = [];
  142.          weakReferenceProxies = new Dictionary(true);
  143.          strongReferenceProxies = new Dictionary(false);
  144.          super();
  145.          _topLevelSystemManager = this;
  146.          mx_internal::topLevelWindow = param1;
  147.          SystemManagerGlobals.topLevelSystemManagers.push(this);
  148.          addEventListener(Event.ADDED,docFrameHandler);
  149.       }
  150.       
  151.       private static function areRemotePopUpsEqual(param1:Object, param2:Object) : Boolean
  152.       {
  153.          if(!(param1 is RemotePopUp))
  154.          {
  155.             return false;
  156.          }
  157.          if(!(param2 is RemotePopUp))
  158.          {
  159.             return false;
  160.          }
  161.          var _loc3_:RemotePopUp = RemotePopUp(param1);
  162.          var _loc4_:RemotePopUp = RemotePopUp(param2);
  163.          if(_loc3_.window == _loc4_.window && _loc3_.bridge && Boolean(_loc4_.bridge))
  164.          {
  165.             return true;
  166.          }
  167.          return false;
  168.       }
  169.       
  170.       private static function isRemotePopUp(param1:Object) : Boolean
  171.       {
  172.          return !(param1 is IFocusManagerContainer);
  173.       }
  174.       
  175.       private static function getChildListIndex(param1:IChildList, param2:Object) : int
  176.       {
  177.          var childList:IChildList = param1;
  178.          var f:Object = param2;
  179.          var index:int = -1;
  180.          try
  181.          {
  182.             index = int(childList.getChildIndex(DisplayObject(f)));
  183.          }
  184.          catch(e:ArgumentError)
  185.          {
  186.          }
  187.          return index;
  188.       }
  189.       
  190.       private function removeEventListenerFromSandboxes(param1:String, param2:Function, param3:Boolean = false, param4:IEventDispatcher = null) : void
  191.       {
  192.          var _loc8_:int = 0;
  193.          if(!swfBridgeGroup)
  194.          {
  195.             return;
  196.          }
  197.          var _loc5_:EventListenerRequest = new EventListenerRequest(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,false,false,param1,param3);
  198.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  199.          if((Boolean(_loc6_)) && _loc6_ != param4)
  200.          {
  201.             _loc6_.removeEventListener(param1,param2,param3);
  202.          }
  203.          var _loc7_:Array = swfBridgeGroup.getChildBridges();
  204.          while(_loc8_ < _loc7_.length)
  205.          {
  206.             if(_loc7_[_loc8_] != param4)
  207.             {
  208.                IEventDispatcher(_loc7_[_loc8_]).removeEventListener(param1,param2,param3);
  209.             }
  210.             _loc8_++;
  211.          }
  212.          dispatchEventFromSWFBridges(_loc5_,param4);
  213.       }
  214.       
  215.       private function dispatchEventToOtherSystemManagers(param1:Event) : void
  216.       {
  217.          dispatchingToSystemManagers = true;
  218.          var _loc2_:Array = SystemManagerGlobals.topLevelSystemManagers;
  219.          var _loc3_:int = int(_loc2_.length);
  220.          var _loc4_:int = 0;
  221.          while(_loc4_ < _loc3_)
  222.          {
  223.             if(_loc2_[_loc4_] != this)
  224.             {
  225.                _loc2_[_loc4_].dispatchEvent(param1);
  226.             }
  227.             _loc4_++;
  228.          }
  229.          dispatchingToSystemManagers = false;
  230.       }
  231.       
  232.       private function initManagerHandler(param1:Event) : void
  233.       {
  234.          var name:String;
  235.          var event:Event = param1;
  236.          if(!dispatchingToSystemManagers)
  237.          {
  238.             dispatchEventToOtherSystemManagers(event);
  239.          }
  240.          if(event is InterManagerRequest)
  241.          {
  242.             return;
  243.          }
  244.          name = event["name"];
  245.          try
  246.          {
  247.             Singleton.getInstance(name);
  248.          }
  249.          catch(e:Error)
  250.          {
  251.          }
  252.       }
  253.       
  254.       mx_internal function rawChildren_getObjectsUnderPoint(param1:Point) : Array
  255.       {
  256.          return super.getObjectsUnderPoint(param1);
  257.       }
  258.       
  259.       private function getSizeRequestHandler(param1:Event) : void
  260.       {
  261.       }
  262.       
  263.       mx_internal function findFocusManagerContainer(param1:SystemManagerProxy) : IFocusManagerContainer
  264.       {
  265.          var _loc5_:DisplayObject = null;
  266.          var _loc2_:IChildList = param1.rawChildren;
  267.          var _loc3_:int = int(_loc2_.numChildren);
  268.          var _loc4_:int = 0;
  269.          while(_loc4_ < _loc3_)
  270.          {
  271.             _loc5_ = _loc2_.getChildAt(_loc4_);
  272.             if(_loc5_ is IFocusManagerContainer)
  273.             {
  274.                return IFocusManagerContainer(_loc5_);
  275.             }
  276.             _loc4_++;
  277.          }
  278.          return null;
  279.       }
  280.       
  281.       private function addPlaceholderPopupRequestHandler(param1:Event) : void
  282.       {
  283.          var _loc3_:RemotePopUp = null;
  284.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  285.          if(param1.target != this && param1 is SWFBridgeRequest)
  286.          {
  287.             return;
  288.          }
  289.          if(!forwardPlaceholderRequest(_loc2_,true))
  290.          {
  291.             _loc3_ = new RemotePopUp(_loc2_.data.placeHolderId,_loc2_.requestor);
  292.             forms.push(_loc3_);
  293.          }
  294.       }
  295.       
  296.       private function activateApplicationSandboxEventHandler(param1:Event) : void
  297.       {
  298.          if(!isTopLevelRoot())
  299.          {
  300.             swfBridgeGroup.parentBridge.dispatchEvent(param1);
  301.             return;
  302.          }
  303.          activateForm(document);
  304.       }
  305.       
  306.       private function getVisibleRectRequestHandler(param1:Event) : void
  307.       {
  308.          var _loc5_:Rectangle = null;
  309.          var _loc7_:Point = null;
  310.          var _loc8_:IEventDispatcher = null;
  311.          if(param1 is SWFBridgeRequest)
  312.          {
  313.             return;
  314.          }
  315.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  316.          var _loc3_:Rectangle = Rectangle(_loc2_.data);
  317.          var _loc4_:DisplayObject = DisplayObject(swfBridgeGroup.getChildBridgeProvider(_loc2_.requestor));
  318.          var _loc6_:Boolean = true;
  319.          if(!DisplayObjectContainer(document).contains(_loc4_))
  320.          {
  321.             _loc6_ = false;
  322.          }
  323.          if(_loc4_ is ISWFLoader)
  324.          {
  325.             _loc5_ = ISWFLoader(_loc4_).getVisibleApplicationRect();
  326.          }
  327.          else
  328.          {
  329.             _loc5_ = _loc4_.getBounds(this);
  330.             _loc7_ = localToGlobal(_loc5_.topLeft);
  331.             _loc5_.x = _loc7_.x;
  332.             _loc5_.y = _loc7_.y;
  333.          }
  334.          _loc3_ = _loc3_.intersection(_loc5_);
  335.          _loc2_.data = _loc3_;
  336.          if(_loc6_ && useSWFBridge())
  337.          {
  338.             _loc8_ = swfBridgeGroup.parentBridge;
  339.             _loc2_.requestor = _loc8_;
  340.             _loc8_.dispatchEvent(_loc2_);
  341.          }
  342.          Object(param1).data = _loc2_.data;
  343.       }
  344.       
  345.       mx_internal function notifyStyleChangeInChildren(param1:String, param2:Boolean) : void
  346.       {
  347.          var _loc6_:IStyleClient = null;
  348.          var _loc3_:Boolean = false;
  349.          var _loc4_:int = int(rawChildren.numChildren);
  350.          var _loc5_:int = 0;
  351.          while(_loc5_ < _loc4_)
  352.          {
  353.             _loc6_ = rawChildren.getChildAt(_loc5_) as IStyleClient;
  354.             if(_loc6_)
  355.             {
  356.                _loc6_.styleChanged(param1);
  357.                _loc6_.notifyStyleChangeInChildren(param1,param2);
  358.             }
  359.             if(isTopLevelWindow(DisplayObject(_loc6_)))
  360.             {
  361.                _loc3_ = true;
  362.             }
  363.             _loc4_ = int(rawChildren.numChildren);
  364.             _loc5_++;
  365.          }
  366.          if(!_loc3_ && mx_internal::topLevelWindow is IStyleClient)
  367.          {
  368.             IStyleClient(mx_internal::topLevelWindow).styleChanged(param1);
  369.             IStyleClient(mx_internal::topLevelWindow).notifyStyleChangeInChildren(param1,param2);
  370.          }
  371.       }
  372.       
  373.       private function addEventListenerToOtherSystemManagers(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
  374.       {
  375.          var _loc6_:Array = SystemManagerGlobals.topLevelSystemManagers;
  376.          if(_loc6_.length < 2)
  377.          {
  378.             return;
  379.          }
  380.          SystemManagerGlobals.changingListenersInOtherSystemManagers = true;
  381.          var _loc7_:int = int(_loc6_.length);
  382.          var _loc8_:int = 0;
  383.          while(_loc8_ < _loc7_)
  384.          {
  385.             if(_loc6_[_loc8_] != this)
  386.             {
  387.                _loc6_[_loc8_].addEventListener(param1,param2,param3,param4,param5);
  388.             }
  389.             _loc8_++;
  390.          }
  391.          SystemManagerGlobals.changingListenersInOtherSystemManagers = false;
  392.       }
  393.       
  394.       private function modalWindowRequestHandler(param1:Event) : void
  395.       {
  396.          if(param1 is SWFBridgeRequest)
  397.          {
  398.             return;
  399.          }
  400.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  401.          if(!preProcessModalWindowRequest(_loc2_,getSandboxRoot()))
  402.          {
  403.             return;
  404.          }
  405.          Singleton.getInstance("mx.managers::IPopUpManager");
  406.          dispatchEvent(_loc2_);
  407.       }
  408.       
  409.       public function getDefinitionByName(param1:String) : Object
  410.       {
  411.          var _loc3_:Object = null;
  412.          var _loc2_:ApplicationDomain = ApplicationDomain.currentDomain;
  413.          if(_loc2_.hasDefinition(param1))
  414.          {
  415.             _loc3_ = _loc2_.getDefinition(param1);
  416.          }
  417.          return _loc3_;
  418.       }
  419.       
  420.       public function removeChildFromSandboxRoot(param1:String, param2:DisplayObject) : void
  421.       {
  422.          var _loc3_:InterManagerRequest = null;
  423.          if(getSandboxRoot() == this)
  424.          {
  425.             this[param1].removeChild(param2);
  426.          }
  427.          else
  428.          {
  429.             mx_internal::removingChild(param2);
  430.             _loc3_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  431.             _loc3_.name = param1 + ".removeChild";
  432.             _loc3_.value = param2;
  433.             getSandboxRoot().dispatchEvent(_loc3_);
  434.             mx_internal::childRemoved(param2);
  435.          }
  436.       }
  437.       
  438.       private function removeEventListenerFromOtherSystemManagers(param1:String, param2:Function, param3:Boolean = false) : void
  439.       {
  440.          var _loc4_:Array = SystemManagerGlobals.topLevelSystemManagers;
  441.          if(_loc4_.length < 2)
  442.          {
  443.             return;
  444.          }
  445.          SystemManagerGlobals.changingListenersInOtherSystemManagers = true;
  446.          var _loc5_:int = int(_loc4_.length);
  447.          var _loc6_:int = 0;
  448.          while(_loc6_ < _loc5_)
  449.          {
  450.             if(_loc4_[_loc6_] != this)
  451.             {
  452.                _loc4_[_loc6_].removeEventListener(param1,param2,param3);
  453.             }
  454.             _loc6_++;
  455.          }
  456.          SystemManagerGlobals.changingListenersInOtherSystemManagers = false;
  457.       }
  458.       
  459.       public function set document(param1:Object) : void
  460.       {
  461.          _document = param1;
  462.       }
  463.       
  464.       public function get embeddedFontList() : Object
  465.       {
  466.          var _loc1_:Object = null;
  467.          var _loc2_:String = null;
  468.          var _loc3_:Object = null;
  469.          if(_fontList == null)
  470.          {
  471.             _fontList = {};
  472.             _loc1_ = info()["fonts"];
  473.             for(_loc2_ in _loc1_)
  474.             {
  475.                _fontList[_loc2_] = _loc1_[_loc2_];
  476.             }
  477.             if(!topLevel && Boolean(_topLevelSystemManager))
  478.             {
  479.                _loc3_ = _topLevelSystemManager.embeddedFontList;
  480.                for(_loc2_ in _loc3_)
  481.                {
  482.                   _fontList[_loc2_] = _loc3_[_loc2_];
  483.                }
  484.             }
  485.          }
  486.          return _fontList;
  487.       }
  488.       
  489.       mx_internal function set cursorIndex(param1:int) : void
  490.       {
  491.          var _loc2_:int = param1 - _cursorIndex;
  492.          _cursorIndex = param1;
  493.       }
  494.       
  495.       mx_internal function addChildBridgeListeners(param1:IEventDispatcher) : void
  496.       {
  497.          if(!topLevel && Boolean(topLevelSystemManager))
  498.          {
  499.             SystemManager(topLevelSystemManager).mx_internal::addChildBridgeListeners(param1);
  500.             return;
  501.          }
  502.          param1.addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  503.          param1.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  504.          param1.addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  505.          param1.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  506.          param1.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  507.          param1.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  508.          param1.addEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,activateApplicationSandboxEventHandler);
  509.          param1.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler,false,0,true);
  510.          param1.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler,false,0,true);
  511.          param1.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  512.          param1.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  513.          param1.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  514.          param1.addEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,getVisibleRectRequestHandler);
  515.          param1.addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  516.          param1.addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  517.          param1.addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  518.       }
  519.       
  520.       private function findLastActiveForm(param1:Object) : Object
  521.       {
  522.          var _loc2_:int = int(forms.length);
  523.          var _loc3_:int = int(forms.length - 1);
  524.          while(_loc3_ >= 0)
  525.          {
  526.             if(forms[_loc3_] != param1 && canActivatePopUp(forms[_loc3_]))
  527.             {
  528.                return forms[_loc3_];
  529.             }
  530.             _loc3_--;
  531.          }
  532.          return null;
  533.       }
  534.       
  535.       private function preProcessModalWindowRequest(param1:SWFBridgeRequest, param2:DisplayObject) : Boolean
  536.       {
  537.          var _loc3_:IEventDispatcher = null;
  538.          var _loc4_:ISWFLoader = null;
  539.          var _loc5_:Rectangle = null;
  540.          if(param1.data.skip)
  541.          {
  542.             param1.data.skip = false;
  543.             if(useSWFBridge())
  544.             {
  545.                _loc3_ = swfBridgeGroup.parentBridge;
  546.                param1.requestor = _loc3_;
  547.                _loc3_.dispatchEvent(param1);
  548.             }
  549.             return false;
  550.          }
  551.          if(this != param2)
  552.          {
  553.             if(param1.type == SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST || param1.type == SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST)
  554.             {
  555.                _loc4_ = swfBridgeGroup.getChildBridgeProvider(param1.requestor) as ISWFLoader;
  556.                if(_loc4_)
  557.                {
  558.                   _loc5_ = ISWFLoader(_loc4_).getVisibleApplicationRect();
  559.                   param1.data.excludeRect = _loc5_;
  560.                   if(!DisplayObjectContainer(document).contains(DisplayObject(_loc4_)))
  561.                   {
  562.                      param1.data.useExclude = false;
  563.                   }
  564.                }
  565.             }
  566.             _loc3_ = swfBridgeGroup.parentBridge;
  567.             param1.requestor = _loc3_;
  568.             if(param1.type == SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST)
  569.             {
  570.                param2.dispatchEvent(param1);
  571.             }
  572.             else
  573.             {
  574.                _loc3_.dispatchEvent(param1);
  575.             }
  576.             return false;
  577.          }
  578.          param1.data.skip = false;
  579.          return true;
  580.       }
  581.       
  582.       public function get rawChildren() : IChildList
  583.       {
  584.          if(!topLevel)
  585.          {
  586.             return _topLevelSystemManager.rawChildren;
  587.          }
  588.          if(!_rawChildren)
  589.          {
  590.             _rawChildren = new WindowedSystemRawChildrenList(this);
  591.          }
  592.          return _rawChildren;
  593.       }
  594.       
  595.       override public function getChildAt(param1:int) : DisplayObject
  596.       {
  597.          return super.getChildAt(mx_internal::applicationIndex + param1);
  598.       }
  599.       
  600.       private function multiWindowRedispatcher(param1:Event) : void
  601.       {
  602.          if(!dispatchingToSystemManagers)
  603.          {
  604.             dispatchEventToOtherSystemManagers(param1);
  605.          }
  606.       }
  607.       
  608.       public function deployMouseShields(param1:Boolean) : void
  609.       {
  610.          var _loc2_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST,false,false,"mouseShield",param1);
  611.          getSandboxRoot().dispatchEvent(_loc2_);
  612.       }
  613.       
  614.       override public function addEventListener(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
  615.       {
  616.          var newListener:StageEventProxy = null;
  617.          var actualType:String = null;
  618.          var type:String = param1;
  619.          var listener:Function = param2;
  620.          var useCapture:Boolean = param3;
  621.          var priority:int = param4;
  622.          var useWeakReference:Boolean = param5;
  623.          if(type == FlexEvent.RENDER || type == FlexEvent.ENTER_FRAME)
  624.          {
  625.             if(type == FlexEvent.RENDER)
  626.             {
  627.                type = Event.RENDER;
  628.             }
  629.             else
  630.             {
  631.                type = Event.ENTER_FRAME;
  632.             }
  633.             try
  634.             {
  635.                if(stage)
  636.                {
  637.                   stage.addEventListener(type,listener,useCapture,priority,useWeakReference);
  638.                }
  639.                else
  640.                {
  641.                   super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  642.                }
  643.             }
  644.             catch(error:SecurityError)
  645.             {
  646.                super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  647.             }
  648.             if(Boolean(stage) && type == Event.RENDER)
  649.             {
  650.                stage.invalidate();
  651.             }
  652.             return;
  653.          }
  654.          if(type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN || type == Event.ACTIVATE || type == Event.DEACTIVATE)
  655.          {
  656.             try
  657.             {
  658.                if(stage)
  659.                {
  660.                   newListener = new StageEventProxy(listener);
  661.                   stage.addEventListener(type,newListener.stageListener,false,priority,useWeakReference);
  662.                   if(useWeakReference)
  663.                   {
  664.                      weakReferenceProxies[listener] = newListener;
  665.                   }
  666.                   else
  667.                   {
  668.                      strongReferenceProxies[listener] = newListener;
  669.                   }
  670.                }
  671.             }
  672.             catch(error:SecurityError)
  673.             {
  674.             }
  675.          }
  676.          if(hasSWFBridges() || SystemManagerGlobals.topLevelSystemManagers.length > 1)
  677.          {
  678.             if(!eventProxy)
  679.             {
  680.                eventProxy = new EventProxy(this);
  681.             }
  682.             actualType = EventUtil.sandboxMouseEventMap[type];
  683.             if(actualType)
  684.             {
  685.                if(isTopLevelRoot())
  686.                {
  687.                   stage.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  688.                   addEventListenerToSandboxes(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  689.                }
  690.                else
  691.                {
  692.                   super.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  693.                }
  694.                addEventListenerToSandboxes(type,sandboxMouseListener,useCapture,priority,useWeakReference);
  695.                if(!SystemManagerGlobals.changingListenersInOtherSystemManagers)
  696.                {
  697.                   addEventListenerToOtherSystemManagers(type,otherSystemManagerMouseListener,useCapture,priority,useWeakReference);
  698.                }
  699.                if(getSandboxRoot() == this)
  700.                {
  701.                   super.addEventListener(actualType,eventProxy.marshalListener,useCapture,priority,useWeakReference);
  702.                }
  703.                super.addEventListener(type,listener,false,priority,useWeakReference);
  704.                return;
  705.             }
  706.          }
  707.          super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  708.       }
  709.       
  710.       final mx_internal function $removeChild(param1:DisplayObject) : DisplayObject
  711.       {
  712.          return super.removeChild(param1);
  713.       }
  714.       
  715.       private function Stage_resizeHandler(param1:Event = null) : void
  716.       {
  717.          var _loc2_:Number = stage.stageWidth;
  718.          var _loc3_:Number = stage.stageHeight;
  719.          var _loc4_:Number = 0;
  720.          var _loc5_:Number = 0;
  721.          if(!_screen)
  722.          {
  723.             _screen = new Rectangle();
  724.          }
  725.          _screen.x = _loc5_;
  726.          _screen.y = _loc4_;
  727.          _screen.width = _loc2_;
  728.          _screen.height = _loc3_;
  729.          _width = stage.stageWidth;
  730.          _height = stage.stageHeight;
  731.          if(param1)
  732.          {
  733.             resizeMouseCatcher();
  734.             dispatchEvent(param1);
  735.          }
  736.       }
  737.       
  738.       private function activateForm(param1:Object) : void
  739.       {
  740.          var _loc2_:IFocusManagerContainer = null;
  741.          if(form)
  742.          {
  743.             if(form != param1 && forms.length > 1)
  744.             {
  745.                if(isRemotePopUp(form))
  746.                {
  747.                   if(!areRemotePopUpsEqual(form,param1))
  748.                   {
  749.                      deactivateRemotePopUp(form);
  750.                   }
  751.                }
  752.                else
  753.                {
  754.                   _loc2_ = IFocusManagerContainer(form);
  755.                   _loc2_.focusManager.deactivate();
  756.                }
  757.             }
  758.          }
  759.          form = param1;
  760.          if(isRemotePopUp(param1))
  761.          {
  762.             activateRemotePopUp(param1);
  763.          }
  764.          else if(param1.focusManager)
  765.          {
  766.             param1.focusManager.activate();
  767.          }
  768.          updateLastActiveForm();
  769.       }
  770.       
  771.       public function removeFocusManager(param1:IFocusManagerContainer) : void
  772.       {
  773.          var _loc2_:int = int(forms.length);
  774.          var _loc3_:int = 0;
  775.          while(_loc3_ < _loc2_)
  776.          {
  777.             if(forms[_loc3_] == param1)
  778.             {
  779.                if(form == param1)
  780.                {
  781.                   deactivate(param1);
  782.                }
  783.                forms.splice(_loc3_,1);
  784.                return;
  785.             }
  786.             _loc3_++;
  787.          }
  788.       }
  789.       
  790.       override public function get mouseY() : Number
  791.       {
  792.          if(mx_internal::_mouseY === undefined)
  793.          {
  794.             return super.mouseY;
  795.          }
  796.          return mx_internal::_mouseY;
  797.       }
  798.       
  799.       public function get focusPane() : Sprite
  800.       {
  801.          return _focusPane;
  802.       }
  803.       
  804.       override public function get mouseX() : Number
  805.       {
  806.          if(mx_internal::_mouseX === undefined)
  807.          {
  808.             return super.mouseX;
  809.          }
  810.          return mx_internal::_mouseX;
  811.       }
  812.       
  813.       private function mouseDownHandler(param1:MouseEvent) : void
  814.       {
  815.          var _loc2_:int = 0;
  816.          var _loc3_:DisplayObject = null;
  817.          var _loc4_:Boolean = false;
  818.          var _loc5_:int = 0;
  819.          var _loc6_:Object = null;
  820.          var _loc7_:int = 0;
  821.          var _loc8_:int = 0;
  822.          var _loc9_:int = 0;
  823.          var _loc10_:IChildList = null;
  824.          var _loc11_:DisplayObject = null;
  825.          var _loc12_:Boolean = false;
  826.          var _loc13_:int = 0;
  827.          mx_internal::idleCounter = 0;
  828.          if(isDisplayObjectInABridgedApplication(param1.target as DisplayObject))
  829.          {
  830.             if(isTopLevelRoot())
  831.             {
  832.                activateForm(document);
  833.             }
  834.             else
  835.             {
  836.                dispatchActivatedApplicationEvent();
  837.             }
  838.             return;
  839.          }
  840.          if(numModalWindows == 0)
  841.          {
  842.             if(forms.length > 1)
  843.             {
  844.                _loc2_ = int(forms.length);
  845.                _loc3_ = DisplayObject(param1.target);
  846.                _loc4_ = Boolean(document.rawChildren.contains(_loc3_));
  847.                while(_loc3_)
  848.                {
  849.                   _loc5_ = 0;
  850.                   while(_loc5_ < _loc2_)
  851.                   {
  852.                      _loc6_ = isRemotePopUp(forms[_loc5_]) ? forms[_loc5_].window : forms[_loc5_];
  853.                      if(_loc6_ == _loc3_)
  854.                      {
  855.                         _loc7_ = 0;
  856.                         if(_loc3_ != form && _loc3_ is IFocusManagerContainer)
  857.                         {
  858.                            activate(IFocusManagerContainer(_loc3_));
  859.                         }
  860.                         if(popUpChildren.contains(_loc3_))
  861.                         {
  862.                            _loc10_ = popUpChildren;
  863.                         }
  864.                         else
  865.                         {
  866.                            _loc10_ = this;
  867.                         }
  868.                         _loc9_ = _loc8_ = int(_loc10_.getChildIndex(_loc3_));
  869.                         _loc2_ = int(forms.length);
  870.                         _loc7_ = 0;
  871.                         for(; _loc7_ < _loc2_; _loc7_++)
  872.                         {
  873.                            _loc12_ = isRemotePopUp(forms[_loc7_]);
  874.                            if(_loc12_)
  875.                            {
  876.                               if(forms[_loc7_].window is String)
  877.                               {
  878.                                  continue;
  879.                               }
  880.                               _loc11_ = forms[_loc7_].window;
  881.                            }
  882.                            else
  883.                            {
  884.                               _loc11_ = forms[_loc7_];
  885.                            }
  886.                            if(_loc12_)
  887.                            {
  888.                               _loc13_ = getChildListIndex(_loc10_,_loc11_);
  889.                               if(_loc13_ > _loc8_)
  890.                               {
  891.                                  _loc9_ = Math.max(_loc13_,_loc9_);
  892.                               }
  893.                            }
  894.                            else if(_loc10_.contains(_loc11_))
  895.                            {
  896.                               if(_loc10_.getChildIndex(_loc11_) > _loc8_)
  897.                               {
  898.                                  _loc9_ = Math.max(_loc10_.getChildIndex(_loc11_),_loc9_);
  899.                               }
  900.                            }
  901.                         }
  902.                         if(_loc9_ > _loc8_ && !_loc4_)
  903.                         {
  904.                            _loc10_.setChildIndex(_loc3_,_loc9_);
  905.                         }
  906.                         return;
  907.                      }
  908.                      _loc5_++;
  909.                   }
  910.                   _loc3_ = _loc3_.parent;
  911.                }
  912.             }
  913.          }
  914.       }
  915.       
  916.       public function addChildBridge(param1:IEventDispatcher, param2:DisplayObject) : void
  917.       {
  918.          var _loc3_:IFocusManager = null;
  919.          var _loc4_:DisplayObject = param2;
  920.          while(_loc4_)
  921.          {
  922.             if(_loc4_ is IFocusManagerContainer)
  923.             {
  924.                _loc3_ = IFocusManagerContainer(_loc4_).focusManager;
  925.                break;
  926.             }
  927.             _loc4_ = _loc4_.parent;
  928.          }
  929.          if(!_loc3_)
  930.          {
  931.             return;
  932.          }
  933.          if(!swfBridgeGroup)
  934.          {
  935.             swfBridgeGroup = new SWFBridgeGroup(this);
  936.          }
  937.          swfBridgeGroup.addChildBridge(param1,ISWFBridgeProvider(param2));
  938.          _loc3_.addSWFBridge(param1,param2);
  939.          if(!bridgeToFocusManager)
  940.          {
  941.             bridgeToFocusManager = new Dictionary();
  942.          }
  943.          bridgeToFocusManager[param1] = _loc3_;
  944.          mx_internal::addChildBridgeListeners(param1);
  945.       }
  946.       
  947.       private function removePopupRequestHandler(param1:Event) : void
  948.       {
  949.          var _loc3_:SWFBridgeRequest = null;
  950.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  951.          if(Boolean(swfBridgeGroup.parentBridge) && SecurityUtil.hasMutualTrustBetweenParentAndChild(this))
  952.          {
  953.             _loc2_.requestor = swfBridgeGroup.parentBridge;
  954.             getSandboxRoot().dispatchEvent(_loc2_);
  955.             return;
  956.          }
  957.          if(popUpChildren.contains(_loc2_.data.window))
  958.          {
  959.             popUpChildren.removeChild(_loc2_.data.window);
  960.          }
  961.          else
  962.          {
  963.             removeChild(DisplayObject(_loc2_.data.window));
  964.          }
  965.          if(_loc2_.data.modal)
  966.          {
  967.             --numModalWindows;
  968.          }
  969.          removeRemotePopUp(new RemotePopUp(_loc2_.data.window,_loc2_.requestor));
  970.          if(!isTopLevelRoot() && Boolean(swfBridgeGroup))
  971.          {
  972.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,false,false,_loc2_.requestor,{"placeHolderId":NameUtil.displayObjectToString(_loc2_.data.window)});
  973.             dispatchEvent(_loc3_);
  974.          }
  975.       }
  976.       
  977.       public function get screen() : Rectangle
  978.       {
  979.          if(!_screen)
  980.          {
  981.             _screen = new Rectangle();
  982.          }
  983.          _screen.x = 0;
  984.          _screen.y = 0;
  985.          _screen.width = stage.stageWidth;
  986.          _screen.height = stage.stageHeight;
  987.          return _screen;
  988.       }
  989.       
  990.       private function resetMouseCursorRequestHandler(param1:Event) : void
  991.       {
  992.          var _loc3_:IEventDispatcher = null;
  993.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  994.          {
  995.             return;
  996.          }
  997.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  998.          if(!isTopLevelRoot())
  999.          {
  1000.             _loc3_ = swfBridgeGroup.parentBridge;
  1001.             _loc2_.requestor = _loc3_;
  1002.             _loc3_.dispatchEvent(_loc2_);
  1003.          }
  1004.          else if(eventProxy)
  1005.          {
  1006.             SystemManagerGlobals.showMouseCursor = true;
  1007.          }
  1008.       }
  1009.       
  1010.       private function resetMouseCursorTracking(param1:Event) : void
  1011.       {
  1012.          var _loc2_:SWFBridgeRequest = null;
  1013.          var _loc3_:IEventDispatcher = null;
  1014.          if(isTopLevelRoot())
  1015.          {
  1016.             SystemManagerGlobals.showMouseCursor = true;
  1017.          }
  1018.          else if(swfBridgeGroup.parentBridge)
  1019.          {
  1020.             _loc2_ = new SWFBridgeRequest(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST);
  1021.             _loc3_ = swfBridgeGroup.parentBridge;
  1022.             _loc2_.requestor = _loc3_;
  1023.             _loc3_.dispatchEvent(_loc2_);
  1024.          }
  1025.       }
  1026.       
  1027.       mx_internal function set topMostIndex(param1:int) : void
  1028.       {
  1029.          var _loc2_:int = param1 - _topMostIndex;
  1030.          _topMostIndex = param1;
  1031.          mx_internal::toolTipIndex += _loc2_;
  1032.       }
  1033.       
  1034.       protected function docFrameHandler(param1:Event = null) : void
  1035.       {
  1036.          var _loc3_:int = 0;
  1037.          var _loc4_:int = 0;
  1038.          var _loc5_:Class = null;
  1039.          removeEventListener(Event.ADDED,docFrameHandler);
  1040.          getSandboxRoot().addEventListener(InterManagerRequest.INIT_MANAGER_REQUEST,initManagerHandler,false,0,true);
  1041.          if(getSandboxRoot() == this)
  1042.          {
  1043.             addEventListener(InterManagerRequest.SYSTEM_MANAGER_REQUEST,systemManagerHandler);
  1044.             addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST,multiWindowRedispatcher);
  1045.             addEventListener("dispatchDragEvent",multiWindowRedispatcher);
  1046.             addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  1047.             addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  1048.             addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  1049.             addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  1050.             addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  1051.             addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  1052.             addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  1053.             addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  1054.             addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  1055.          }
  1056.          if(stage)
  1057.          {
  1058.             stage.scaleMode = StageScaleMode.NO_SCALE;
  1059.             stage.align = StageAlign.TOP_LEFT;
  1060.          }
  1061.          var _loc2_:Array = info()["mixins"];
  1062.          if(Boolean(_loc2_) && _loc2_.length > 0)
  1063.          {
  1064.             _loc3_ = int(_loc2_.length);
  1065.             _loc4_ = 0;
  1066.             while(_loc4_ < _loc3_)
  1067.             {
  1068.                _loc5_ = Class(getDefinitionByName(_loc2_[_loc4_]));
  1069.                _loc5_["init"](this);
  1070.                _loc4_++;
  1071.             }
  1072.          }
  1073.          initializeTopLevelWindow(null);
  1074.          if(Singleton.getClass("mx.managers::IDragManager").getInstance() is NativeDragManagerImpl)
  1075.          {
  1076.             NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()).mx_internal::registerSystemManager(this);
  1077.          }
  1078.       }
  1079.       
  1080.       public function isTopLevel() : Boolean
  1081.       {
  1082.          return topLevel;
  1083.       }
  1084.       
  1085.       public function deactivate(param1:IFocusManagerContainer) : void
  1086.       {
  1087.          deactivateForm(Object(param1));
  1088.       }
  1089.       
  1090.       private function initContextMenu() : void
  1091.       {
  1092.          var _loc1_:ContextMenu = new ContextMenu();
  1093.          _loc1_.hideBuiltInItems();
  1094.          _loc1_.builtInItems.print = true;
  1095.          contextMenu = _loc1_;
  1096.       }
  1097.       
  1098.       mx_internal function addParentBridgeListeners() : void
  1099.       {
  1100.          if(!topLevel && Boolean(topLevelSystemManager))
  1101.          {
  1102.             SystemManager(topLevelSystemManager).mx_internal::addParentBridgeListeners();
  1103.             return;
  1104.          }
  1105.          var _loc1_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1106.          _loc1_.addEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST,setActualSizeRequestHandler);
  1107.          _loc1_.addEventListener(SWFBridgeRequest.GET_SIZE_REQUEST,getSizeRequestHandler);
  1108.          _loc1_.addEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,activateRequestHandler);
  1109.          _loc1_.addEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,deactivateRequestHandler);
  1110.          _loc1_.addEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,isBridgeChildHandler);
  1111.          _loc1_.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1112.          _loc1_.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1113.          _loc1_.addEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,canActivateHandler);
  1114.       }
  1115.       
  1116.       private function showMouseCursorRequestHandler(param1:Event) : void
  1117.       {
  1118.          var _loc3_:IEventDispatcher = null;
  1119.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  1120.          {
  1121.             return;
  1122.          }
  1123.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1124.          if(!isTopLevelRoot())
  1125.          {
  1126.             _loc3_ = swfBridgeGroup.parentBridge;
  1127.             _loc2_.requestor = _loc3_;
  1128.             _loc3_.dispatchEvent(_loc2_);
  1129.             Object(param1).data = _loc2_.data;
  1130.          }
  1131.          else if(eventProxy)
  1132.          {
  1133.             Object(param1).data = SystemManagerGlobals.showMouseCursor;
  1134.          }
  1135.       }
  1136.       
  1137.       public function get swfBridgeGroup() : ISWFBridgeGroup
  1138.       {
  1139.          if(topLevel)
  1140.          {
  1141.             return _swfBridgeGroup;
  1142.          }
  1143.          if(topLevelSystemManager)
  1144.          {
  1145.             return topLevelSystemManager.swfBridgeGroup;
  1146.          }
  1147.          return null;
  1148.       }
  1149.       
  1150.       mx_internal function removeParentBridgeListeners() : void
  1151.       {
  1152.          if(!topLevel && Boolean(topLevelSystemManager))
  1153.          {
  1154.             SystemManager(topLevelSystemManager).mx_internal::removeParentBridgeListeners();
  1155.             return;
  1156.          }
  1157.          var _loc1_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1158.          _loc1_.removeEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST,setActualSizeRequestHandler);
  1159.          _loc1_.removeEventListener(SWFBridgeRequest.GET_SIZE_REQUEST,getSizeRequestHandler);
  1160.          _loc1_.removeEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,activateRequestHandler);
  1161.          _loc1_.removeEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,deactivateRequestHandler);
  1162.          _loc1_.removeEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,isBridgeChildHandler);
  1163.          _loc1_.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1164.          _loc1_.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1165.          _loc1_.removeEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,canActivateHandler);
  1166.       }
  1167.       
  1168.       mx_internal function removeChildBridgeListeners(param1:IEventDispatcher) : void
  1169.       {
  1170.          if(!topLevel && Boolean(topLevelSystemManager))
  1171.          {
  1172.             SystemManager(topLevelSystemManager).mx_internal::removeChildBridgeListeners(param1);
  1173.             return;
  1174.          }
  1175.          param1.removeEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  1176.          param1.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  1177.          param1.removeEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  1178.          param1.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  1179.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  1180.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  1181.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,activateApplicationSandboxEventHandler);
  1182.          param1.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1183.          param1.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1184.          param1.removeEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1185.          param1.removeEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1186.          param1.removeEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1187.          param1.removeEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,getVisibleRectRequestHandler);
  1188.          param1.removeEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  1189.          param1.removeEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  1190.          param1.removeEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  1191.       }
  1192.       
  1193.       override public function getChildByName(param1:String) : DisplayObject
  1194.       {
  1195.          return super.getChildByName(param1);
  1196.       }
  1197.       
  1198.       public function removeChildBridge(param1:IEventDispatcher) : void
  1199.       {
  1200.          var _loc2_:IFocusManager = IFocusManager(bridgeToFocusManager[param1]);
  1201.          _loc2_.removeSWFBridge(param1);
  1202.          swfBridgeGroup.removeChildBridge(param1);
  1203.          delete bridgeToFocusManager[param1];
  1204.          mx_internal::removeChildBridgeListeners(param1);
  1205.       }
  1206.       
  1207.       mx_internal function cleanup(param1:Event) : void
  1208.       {
  1209.          if(NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()) is NativeDragManagerImpl)
  1210.          {
  1211.             NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()).mx_internal::unregisterSystemManager(this);
  1212.          }
  1213.          SystemManagerGlobals.topLevelSystemManagers.splice(SystemManagerGlobals.topLevelSystemManagers.indexOf(this),1);
  1214.          myWindow.removeEventListener("close",mx_internal::cleanup);
  1215.          myWindow = null;
  1216.       }
  1217.       
  1218.       override public function addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  1219.       {
  1220.          ++mx_internal::noTopMostIndex;
  1221.          return mx_internal::rawChildren_addChildAt(param1,mx_internal::applicationIndex + param2);
  1222.       }
  1223.       
  1224.       public function get swfBridge() : IEventDispatcher
  1225.       {
  1226.          if(swfBridgeGroup)
  1227.          {
  1228.             return swfBridgeGroup.parentBridge;
  1229.          }
  1230.          return null;
  1231.       }
  1232.       
  1233.       private function findRemotePopUp(param1:Object, param2:IEventDispatcher) : RemotePopUp
  1234.       {
  1235.          var _loc5_:RemotePopUp = null;
  1236.          var _loc3_:int = int(forms.length);
  1237.          var _loc4_:int = 0;
  1238.          while(_loc4_ < _loc3_)
  1239.          {
  1240.             if(isRemotePopUp(forms[_loc4_]))
  1241.             {
  1242.                _loc5_ = RemotePopUp(forms[_loc4_]);
  1243.                if(_loc5_.window == param1 && _loc5_.bridge == param2)
  1244.                {
  1245.                   return _loc5_;
  1246.                }
  1247.             }
  1248.             _loc4_++;
  1249.          }
  1250.          return null;
  1251.       }
  1252.       
  1253.       public function info() : Object
  1254.       {
  1255.          return {};
  1256.       }
  1257.       
  1258.       mx_internal function get toolTipIndex() : int
  1259.       {
  1260.          return _toolTipIndex;
  1261.       }
  1262.       
  1263.       private function removePlaceholderPopupRequestHandler(param1:Event) : void
  1264.       {
  1265.          var _loc3_:int = 0;
  1266.          var _loc4_:int = 0;
  1267.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1268.          if(!forwardPlaceholderRequest(_loc2_,false))
  1269.          {
  1270.             _loc3_ = int(forms.length);
  1271.             _loc4_ = 0;
  1272.             while(_loc4_ < _loc3_)
  1273.             {
  1274.                if(isRemotePopUp(forms[_loc4_]))
  1275.                {
  1276.                   if(forms[_loc4_].window == _loc2_.data.placeHolderId && forms[_loc4_].bridge == _loc2_.requestor)
  1277.                   {
  1278.                      forms.splice(_loc4_,1);
  1279.                      break;
  1280.                   }
  1281.                }
  1282.                _loc4_++;
  1283.             }
  1284.          }
  1285.       }
  1286.       
  1287.       public function set focusPane(param1:Sprite) : void
  1288.       {
  1289.          if(param1)
  1290.          {
  1291.             addChild(param1);
  1292.             param1.x = 0;
  1293.             param1.y = 0;
  1294.             param1.scrollRect = null;
  1295.             _focusPane = param1;
  1296.          }
  1297.          else
  1298.          {
  1299.             removeChild(_focusPane);
  1300.             _focusPane = null;
  1301.          }
  1302.       }
  1303.       
  1304.       private function eventListenerRequestHandler(param1:Event) : void
  1305.       {
  1306.          var _loc2_:String = null;
  1307.          if(param1 is EventListenerRequest)
  1308.          {
  1309.             return;
  1310.          }
  1311.          var _loc3_:EventListenerRequest = EventListenerRequest.marshal(param1);
  1312.          if(param1.type == EventListenerRequest.ADD_EVENT_LISTENER_REQUEST)
  1313.          {
  1314.             if(!eventProxy)
  1315.             {
  1316.                eventProxy = new EventProxy(this);
  1317.             }
  1318.             _loc2_ = EventUtil.sandboxMouseEventMap[_loc3_.eventType];
  1319.             if(_loc2_)
  1320.             {
  1321.                if(isTopLevelRoot())
  1322.                {
  1323.                   stage.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  1324.                }
  1325.                else
  1326.                {
  1327.                   super.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  1328.                }
  1329.                addEventListenerToSandboxes(_loc3_.eventType,sandboxMouseListener,true,_loc3_.priority,_loc3_.useWeakReference,param1.target as IEventDispatcher);
  1330.                addEventListenerToOtherSystemManagers(_loc3_.eventType,otherSystemManagerMouseListener,true,_loc3_.priority,_loc3_.useWeakReference);
  1331.                if(getSandboxRoot() == this)
  1332.                {
  1333.                   if(isTopLevelRoot() && (_loc2_ == MouseEvent.MOUSE_UP || _loc2_ == MouseEvent.MOUSE_MOVE))
  1334.                   {
  1335.                      stage.addEventListener(_loc2_,eventProxy.marshalListener,false,_loc3_.priority,_loc3_.useWeakReference);
  1336.                   }
  1337.                   super.addEventListener(_loc2_,eventProxy.marshalListener,true,_loc3_.priority,_loc3_.useWeakReference);
  1338.                }
  1339.             }
  1340.          }
  1341.          else if(param1.type == EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST)
  1342.          {
  1343.             _loc2_ = EventUtil.sandboxMouseEventMap[_loc3_.eventType];
  1344.             if(_loc2_)
  1345.             {
  1346.                removeEventListenerFromOtherSystemManagers(_loc3_.eventType,otherSystemManagerMouseListener,true);
  1347.                removeEventListenerFromSandboxes(_loc3_.eventType,sandboxMouseListener,true,param1.target as IEventDispatcher);
  1348.                if(getSandboxRoot() == this)
  1349.                {
  1350.                   if(isTopLevelRoot() && (_loc2_ == MouseEvent.MOUSE_UP || _loc2_ == MouseEvent.MOUSE_MOVE))
  1351.                   {
  1352.                      stage.removeEventListener(_loc2_,eventProxy.marshalListener);
  1353.                   }
  1354.                   super.removeEventListener(_loc2_,eventProxy.marshalListener,true);
  1355.                }
  1356.             }
  1357.          }
  1358.       }
  1359.       
  1360.       mx_internal function set applicationIndex(param1:int) : void
  1361.       {
  1362.          _applicationIndex = param1;
  1363.       }
  1364.       
  1365.       private function addPlaceholderId(param1:String, param2:String, param3:IEventDispatcher, param4:Object) : void
  1366.       {
  1367.          if(!param3)
  1368.          {
  1369.             throw new Error();
  1370.          }
  1371.          if(!idToPlaceholder)
  1372.          {
  1373.             idToPlaceholder = [];
  1374.          }
  1375.          idToPlaceholder[param1] = new PlaceholderData(param2,param3,param4);
  1376.       }
  1377.       
  1378.       public function get childAllowsParent() : Boolean
  1379.       {
  1380.          try
  1381.          {
  1382.             return loaderInfo.childAllowsParent;
  1383.          }
  1384.          catch(error:Error)
  1385.          {
  1386.          }
  1387.          return false;
  1388.       }
  1389.       
  1390.       public function dispatchEventFromSWFBridges(param1:Event, param2:IEventDispatcher = null, param3:Boolean = false, param4:Boolean = false) : void
  1391.       {
  1392.          var _loc5_:Event = null;
  1393.          if(param4)
  1394.          {
  1395.             dispatchEventToOtherSystemManagers(param1);
  1396.          }
  1397.          if(!swfBridgeGroup)
  1398.          {
  1399.             return;
  1400.          }
  1401.          _loc5_ = param1.clone();
  1402.          if(param3)
  1403.          {
  1404.             currentSandboxEvent = _loc5_;
  1405.          }
  1406.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1407.          if((Boolean(_loc6_)) && _loc6_ != param2)
  1408.          {
  1409.             if(_loc5_ is SWFBridgeRequest)
  1410.             {
  1411.                SWFBridgeRequest(_loc5_).requestor = _loc6_;
  1412.             }
  1413.             _loc6_.dispatchEvent(_loc5_);
  1414.          }
  1415.          var _loc7_:Array = swfBridgeGroup.getChildBridges();
  1416.          var _loc8_:int = 0;
  1417.          while(_loc8_ < _loc7_.length)
  1418.          {
  1419.             if(_loc7_[_loc8_] != param2)
  1420.             {
  1421.                _loc5_ = param1.clone();
  1422.                if(param3)
  1423.                {
  1424.                   currentSandboxEvent = _loc5_;
  1425.                }
  1426.                if(_loc5_ is SWFBridgeRequest)
  1427.                {
  1428.                   SWFBridgeRequest(_loc5_).requestor = IEventDispatcher(_loc7_[_loc8_]);
  1429.                }
  1430.                IEventDispatcher(_loc7_[_loc8_]).dispatchEvent(_loc5_);
  1431.             }
  1432.             _loc8_++;
  1433.          }
  1434.          currentSandboxEvent = null;
  1435.       }
  1436.       
  1437.       private function setActualSizeRequestHandler(param1:Event) : void
  1438.       {
  1439.       }
  1440.       
  1441.       public function useSWFBridge() : Boolean
  1442.       {
  1443.          if(isStageRoot)
  1444.          {
  1445.             return false;
  1446.          }
  1447.          if(!topLevel && Boolean(topLevelSystemManager))
  1448.          {
  1449.             return topLevelSystemManager.useSWFBridge();
  1450.          }
  1451.          if(topLevel && getSandboxRoot() != this)
  1452.          {
  1453.             return true;
  1454.          }
  1455.          if(getSandboxRoot() == this)
  1456.          {
  1457.             try
  1458.             {
  1459.                root.loaderInfo.parentAllowsChild;
  1460.                if(!(parentAllowsChild && childAllowsParent))
  1461.                {
  1462.                   return true;
  1463.                }
  1464.                try
  1465.                {
  1466.                   if(!parent.dispatchEvent(new Event("mx.managers.SystemManager.isStageRoot",false,true)))
  1467.                   {
  1468.                      return true;
  1469.                   }
  1470.                }
  1471.                catch(e:Error)
  1472.                {
  1473.                }
  1474.             }
  1475.             catch(e1:Error)
  1476.             {
  1477.                return false;
  1478.             }
  1479.          }
  1480.          return false;
  1481.       }
  1482.       
  1483.       private function canActivateHandler(param1:Event) : void
  1484.       {
  1485.          var _loc3_:SWFBridgeRequest = null;
  1486.          var _loc6_:PlaceholderData = null;
  1487.          var _loc7_:RemotePopUp = null;
  1488.          var _loc8_:SystemManagerProxy = null;
  1489.          var _loc9_:IFocusManagerContainer = null;
  1490.          var _loc10_:IEventDispatcher = null;
  1491.          var _loc2_:Object = Object(param1);
  1492.          var _loc4_:Object = _loc2_.data;
  1493.          var _loc5_:String = null;
  1494.          if(_loc2_.data is String)
  1495.          {
  1496.             _loc6_ = idToPlaceholder[_loc2_.data];
  1497.             _loc4_ = _loc6_.data;
  1498.             _loc5_ = _loc6_.id;
  1499.             if(_loc5_ == null)
  1500.             {
  1501.                _loc7_ = findRemotePopUp(_loc4_,_loc6_.bridge);
  1502.                if(_loc7_)
  1503.                {
  1504.                   _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,IEventDispatcher(_loc7_.bridge),_loc7_.window);
  1505.                   if(_loc7_.bridge)
  1506.                   {
  1507.                      _loc7_.bridge.dispatchEvent(_loc3_);
  1508.                      _loc2_.data = _loc3_.data;
  1509.                   }
  1510.                   return;
  1511.                }
  1512.             }
  1513.          }
  1514.          if(_loc4_ is SystemManagerProxy)
  1515.          {
  1516.             _loc8_ = SystemManagerProxy(_loc4_);
  1517.             _loc9_ = mx_internal::findFocusManagerContainer(_loc8_);
  1518.             _loc2_.data = _loc8_ && _loc9_ && canActivateLocalComponent(_loc9_);
  1519.          }
  1520.          else if(_loc4_ is IFocusManagerContainer)
  1521.          {
  1522.             _loc2_.data = canActivateLocalComponent(_loc4_);
  1523.          }
  1524.          else
  1525.          {
  1526.             if(!(_loc4_ is IEventDispatcher))
  1527.             {
  1528.                throw new Error();
  1529.             }
  1530.             _loc10_ = IEventDispatcher(_loc4_);
  1531.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,_loc10_,_loc5_);
  1532.             if(_loc10_)
  1533.             {
  1534.                _loc10_.dispatchEvent(_loc3_);
  1535.                _loc2_.data = _loc3_.data;
  1536.             }
  1537.          }
  1538.       }
  1539.       
  1540.       private function addEventListenerToSandboxes(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false, param6:IEventDispatcher = null) : void
  1541.       {
  1542.          var _loc10_:int = 0;
  1543.          var _loc11_:IEventDispatcher = null;
  1544.          if(!swfBridgeGroup)
  1545.          {
  1546.             return;
  1547.          }
  1548.          var _loc7_:EventListenerRequest = new EventListenerRequest(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,false,false,param1,param3,param4,param5);
  1549.          var _loc8_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1550.          if((Boolean(_loc8_)) && _loc8_ != param6)
  1551.          {
  1552.             _loc8_.addEventListener(param1,param2,false,param4,param5);
  1553.          }
  1554.          var _loc9_:Array = swfBridgeGroup.getChildBridges();
  1555.          while(_loc10_ < _loc9_.length)
  1556.          {
  1557.             _loc11_ = IEventDispatcher(_loc9_[_loc10_]);
  1558.             if(_loc11_ != param6)
  1559.             {
  1560.                _loc11_.addEventListener(param1,param2,false,param4,param5);
  1561.             }
  1562.             _loc10_++;
  1563.          }
  1564.          dispatchEventFromSWFBridges(_loc7_,param6);
  1565.       }
  1566.       
  1567.       private function forwardFormEvent(param1:SWFBridgeEvent) : Boolean
  1568.       {
  1569.          var _loc3_:DisplayObject = null;
  1570.          if(isTopLevelRoot())
  1571.          {
  1572.             return false;
  1573.          }
  1574.          var _loc2_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1575.          if(_loc2_)
  1576.          {
  1577.             _loc3_ = getSandboxRoot();
  1578.             param1.data.notifier = _loc2_;
  1579.             if(_loc3_ == this)
  1580.             {
  1581.                if(!(param1.data.window is String))
  1582.                {
  1583.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(param1.data.window));
  1584.                }
  1585.                else
  1586.                {
  1587.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(this)) + "." + param1.data.window;
  1588.                }
  1589.                _loc2_.dispatchEvent(param1);
  1590.             }
  1591.             else
  1592.             {
  1593.                if(param1.data.window is String)
  1594.                {
  1595.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(this)) + "." + param1.data.window;
  1596.                }
  1597.                _loc3_.dispatchEvent(param1);
  1598.             }
  1599.          }
  1600.          return true;
  1601.       }
  1602.       
  1603.       public function activate(param1:IFocusManagerContainer) : void
  1604.       {
  1605.          activateForm(param1);
  1606.       }
  1607.       
  1608.       private function sandboxMouseListener(param1:Event) : void
  1609.       {
  1610.          if(param1 is SandboxMouseEvent)
  1611.          {
  1612.             return;
  1613.          }
  1614.          var _loc2_:Event = SandboxMouseEvent.marshal(param1);
  1615.          dispatchEventFromSWFBridges(_loc2_,param1.target as IEventDispatcher);
  1616.          var _loc3_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  1617.          _loc3_.name = "sameSandbox";
  1618.          _loc3_.value = param1;
  1619.          getSandboxRoot().dispatchEvent(_loc3_);
  1620.          if(!_loc3_.value)
  1621.          {
  1622.             dispatchEvent(_loc2_);
  1623.          }
  1624.       }
  1625.       
  1626.       override public function removeChild(param1:DisplayObject) : DisplayObject
  1627.       {
  1628.          --mx_internal::noTopMostIndex;
  1629.          return mx_internal::rawChildren_removeChild(param1);
  1630.       }
  1631.       
  1632.       mx_internal function rawChildren_removeChild(param1:DisplayObject) : DisplayObject
  1633.       {
  1634.          mx_internal::removingChild(param1);
  1635.          super.removeChild(param1);
  1636.          mx_internal::childRemoved(param1);
  1637.          return param1;
  1638.       }
  1639.       
  1640.       final mx_internal function get $numChildren() : int
  1641.       {
  1642.          return super.numChildren;
  1643.       }
  1644.       
  1645.       public function get toolTipChildren() : IChildList
  1646.       {
  1647.          if(!topLevel)
  1648.          {
  1649.             return _topLevelSystemManager.toolTipChildren;
  1650.          }
  1651.          if(!_toolTipChildren)
  1652.          {
  1653.             _toolTipChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"topMostIndex"),new QName(mx_internal,"toolTipIndex"));
  1654.          }
  1655.          return _toolTipChildren;
  1656.       }
  1657.       
  1658.       public function get popUpChildren() : IChildList
  1659.       {
  1660.          if(!topLevel)
  1661.          {
  1662.             return _topLevelSystemManager.popUpChildren;
  1663.          }
  1664.          if(!_popUpChildren)
  1665.          {
  1666.             _popUpChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"noTopMostIndex"),new QName(mx_internal,"topMostIndex"));
  1667.          }
  1668.          return _popUpChildren;
  1669.       }
  1670.       
  1671.       public function addFocusManager(param1:IFocusManagerContainer) : void
  1672.       {
  1673.          forms.push(param1);
  1674.       }
  1675.       
  1676.       public function isTopLevelRoot() : Boolean
  1677.       {
  1678.          return isStageRoot || isBootstrapRoot;
  1679.       }
  1680.       
  1681.       public function create(... rest) : Object
  1682.       {
  1683.          var _loc2_:String = String(rest[0]);
  1684.          var _loc3_:Class = Class(getDefinitionByName(_loc2_));
  1685.          if(!_loc3_)
  1686.          {
  1687.             throw new Error("Class \'" + _loc2_ + "\' not found.");
  1688.          }
  1689.          var _loc4_:Object = new _loc3_();
  1690.          if(_loc4_ is IFlexModule)
  1691.          {
  1692.             IFlexModule(_loc4_).moduleFactory = this;
  1693.          }
  1694.          return _loc4_;
  1695.       }
  1696.       
  1697.       private function systemManagerHandler(param1:Event) : void
  1698.       {
  1699.          if(param1["name"] == "sameSandbox")
  1700.          {
  1701.             param1["value"] = currentSandboxEvent == param1["value"];
  1702.             return;
  1703.          }
  1704.          if(param1["name"] == "hasSWFBridges")
  1705.          {
  1706.             param1["value"] = hasSWFBridges();
  1707.             return;
  1708.          }
  1709.          if(param1 is InterManagerRequest)
  1710.          {
  1711.             return;
  1712.          }
  1713.          var _loc2_:String = param1["name"];
  1714.          switch(_loc2_)
  1715.          {
  1716.             case "popUpChildren.addChild":
  1717.                popUpChildren.addChild(param1["value"]);
  1718.                break;
  1719.             case "popUpChildren.removeChild":
  1720.                popUpChildren.removeChild(param1["value"]);
  1721.                break;
  1722.             case "cursorChildren.addChild":
  1723.                cursorChildren.addChild(param1["value"]);
  1724.                break;
  1725.             case "cursorChildren.removeChild":
  1726.                cursorChildren.removeChild(param1["value"]);
  1727.                break;
  1728.             case "toolTipChildren.addChild":
  1729.                toolTipChildren.addChild(param1["value"]);
  1730.                break;
  1731.             case "toolTipChildren.removeChild":
  1732.                toolTipChildren.removeChild(param1["value"]);
  1733.                break;
  1734.             case "screen":
  1735.                param1["value"] = screen;
  1736.                break;
  1737.             case "application":
  1738.                param1["value"] = document;
  1739.                break;
  1740.             case "isTopLevelRoot":
  1741.                param1["value"] = isTopLevelRoot();
  1742.                break;
  1743.             case "getVisibleApplicationRect":
  1744.                param1["value"] = getVisibleApplicationRect();
  1745.                break;
  1746.             case "bringToFront":
  1747.                if(param1["value"].topMost)
  1748.                {
  1749.                   popUpChildren.setChildIndex(DisplayObject(param1["value"].popUp),popUpChildren.numChildren - 1);
  1750.                }
  1751.                else
  1752.                {
  1753.                   setChildIndex(DisplayObject(param1["value"].popUp),numChildren - 1);
  1754.                }
  1755.          }
  1756.       }
  1757.       
  1758.       private function removeRemotePopUp(param1:RemotePopUp) : void
  1759.       {
  1760.          var _loc2_:int = int(forms.length);
  1761.          var _loc3_:int = 0;
  1762.          while(_loc3_ < _loc2_)
  1763.          {
  1764.             if(isRemotePopUp(forms[_loc3_]))
  1765.             {
  1766.                if(forms[_loc3_].window == param1.window && forms[_loc3_].bridge == param1.bridge)
  1767.                {
  1768.                   if(forms[_loc3_] == param1)
  1769.                   {
  1770.                      deactivateForm(param1);
  1771.                   }
  1772.                   forms.splice(_loc3_,1);
  1773.                   break;
  1774.                }
  1775.             }
  1776.             _loc3_++;
  1777.          }
  1778.       }
  1779.       
  1780.       private function deactivateRemotePopUp(param1:Object) : void
  1781.       {
  1782.          var _loc2_:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,false,false,param1.bridge,param1.window);
  1783.          var _loc3_:Object = param1.bridge;
  1784.          if(_loc3_)
  1785.          {
  1786.             _loc3_.dispatchEvent(_loc2_);
  1787.          }
  1788.       }
  1789.       
  1790.       public function getSandboxRoot() : DisplayObject
  1791.       {
  1792.          var parent:DisplayObject = null;
  1793.          var lastParent:DisplayObject = null;
  1794.          var loader:Loader = null;
  1795.          var loaderInfo:LoaderInfo = null;
  1796.          var sm:ISystemManager = this;
  1797.          try
  1798.          {
  1799.             if(sm.topLevelSystemManager)
  1800.             {
  1801.                sm = ISystemManager(sm.topLevelSystemManager);
  1802.             }
  1803.             parent = DisplayObject(sm).parent;
  1804.             if(parent is Stage)
  1805.             {
  1806.                return DisplayObject(sm);
  1807.             }
  1808.             if(Boolean(parent) && !parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot",false,true)))
  1809.             {
  1810.                return this;
  1811.             }
  1812.             lastParent = parent;
  1813.             while(parent)
  1814.             {
  1815.                if(parent is Stage)
  1816.                {
  1817.                   return lastParent;
  1818.                }
  1819.                if(!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot",false,true)))
  1820.                {
  1821.                   return lastParent;
  1822.                }
  1823.                if(parent is Loader)
  1824.                {
  1825.                   loader = Loader(parent);
  1826.                   loaderInfo = loader.contentLoaderInfo;
  1827.                   if(!loaderInfo.childAllowsParent)
  1828.                   {
  1829.                      return loaderInfo.content;
  1830.                   }
  1831.                }
  1832.                lastParent = parent;
  1833.                parent = parent.parent;
  1834.             }
  1835.          }
  1836.          catch(error:SecurityError)
  1837.          {
  1838.          }
  1839.          return lastParent != null ? lastParent : DisplayObject(sm);
  1840.       }
  1841.       
  1842.       private function dispatchDeactivatedWindowEvent(param1:DisplayObject) : void
  1843.       {
  1844.          var _loc3_:DisplayObject = null;
  1845.          var _loc4_:* = false;
  1846.          var _loc5_:SWFBridgeEvent = null;
  1847.          var _loc2_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  1848.          if(_loc2_)
  1849.          {
  1850.             _loc3_ = getSandboxRoot();
  1851.             _loc4_ = _loc3_ != this;
  1852.             _loc5_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,false,false,{
  1853.                "notifier":_loc2_,
  1854.                "window":(_loc4_ ? param1 : NameUtil.displayObjectToString(param1))
  1855.             });
  1856.             if(_loc4_)
  1857.             {
  1858.                _loc3_.dispatchEvent(_loc5_);
  1859.             }
  1860.             else
  1861.             {
  1862.                _loc2_.dispatchEvent(_loc5_);
  1863.             }
  1864.          }
  1865.       }
  1866.       
  1867.       public function get document() : Object
  1868.       {
  1869.          return _document;
  1870.       }
  1871.       
  1872.       mx_internal function get cursorIndex() : int
  1873.       {
  1874.          return _cursorIndex;
  1875.       }
  1876.       
  1877.       private function resizeMouseCatcher() : void
  1878.       {
  1879.          var _loc1_:Graphics = null;
  1880.          if(mouseCatcher)
  1881.          {
  1882.             _loc1_ = mouseCatcher.graphics;
  1883.             _loc1_.clear();
  1884.             _loc1_.beginFill(0,0);
  1885.             _loc1_.drawRect(0,0,stage.stageWidth,stage.stageHeight);
  1886.             _loc1_.endFill();
  1887.          }
  1888.       }
  1889.       
  1890.       final mx_internal function $addChild(param1:DisplayObject) : DisplayObject
  1891.       {
  1892.          return super.addChild(param1);
  1893.       }
  1894.       
  1895.       override public function getChildIndex(param1:DisplayObject) : int
  1896.       {
  1897.          return super.getChildIndex(param1) - mx_internal::applicationIndex;
  1898.       }
  1899.       
  1900.       override public function getObjectsUnderPoint(param1:Point) : Array
  1901.       {
  1902.          var _loc5_:DisplayObject = null;
  1903.          var _loc6_:Array = null;
  1904.          var _loc2_:Array = [];
  1905.          var _loc3_:int = mx_internal::topMostIndex;
  1906.          var _loc4_:int = 0;
  1907.          while(_loc4_ < _loc3_)
  1908.          {
  1909.             _loc5_ = super.getChildAt(_loc4_);
  1910.             if(_loc5_ is DisplayObjectContainer)
  1911.             {
  1912.                _loc6_ = DisplayObjectContainer(_loc5_).getObjectsUnderPoint(param1);
  1913.                if(_loc6_)
  1914.                {
  1915.                   _loc2_ = _loc2_.concat(_loc6_);
  1916.                }
  1917.             }
  1918.             _loc4_++;
  1919.          }
  1920.          return _loc2_;
  1921.       }
  1922.       
  1923.       mx_internal function rawChildren_contains(param1:DisplayObject) : Boolean
  1924.       {
  1925.          return super.contains(param1);
  1926.       }
  1927.       
  1928.       override public function get height() : Number
  1929.       {
  1930.          return _height;
  1931.       }
  1932.       
  1933.       public function getFocus() : InteractiveObject
  1934.       {
  1935.          try
  1936.          {
  1937.             return stage.focus;
  1938.          }
  1939.          catch(e:SecurityError)
  1940.          {
  1941.          }
  1942.          return null;
  1943.       }
  1944.       
  1945.       mx_internal function rawChildren_getChildIndex(param1:DisplayObject) : int
  1946.       {
  1947.          return super.getChildIndex(param1);
  1948.       }
  1949.       
  1950.       private function addPopupRequestHandler(param1:Event) : void
  1951.       {
  1952.          var _loc3_:* = false;
  1953.          var _loc4_:IChildList = null;
  1954.          var _loc6_:ISWFBridgeProvider = null;
  1955.          var _loc7_:SWFBridgeRequest = null;
  1956.          if(param1.target != this && param1 is SWFBridgeRequest)
  1957.          {
  1958.             return;
  1959.          }
  1960.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1961.          if(param1.target != this)
  1962.          {
  1963.             _loc6_ = swfBridgeGroup.getChildBridgeProvider(IEventDispatcher(param1.target));
  1964.             if(!SecurityUtil.hasMutualTrustBetweenParentAndChild(_loc6_))
  1965.             {
  1966.                return;
  1967.             }
  1968.          }
  1969.          if(Boolean(swfBridgeGroup.parentBridge) && SecurityUtil.hasMutualTrustBetweenParentAndChild(this))
  1970.          {
  1971.             _loc2_.requestor = swfBridgeGroup.parentBridge;
  1972.             getSandboxRoot().dispatchEvent(_loc2_);
  1973.             return;
  1974.          }
  1975.          if(!_loc2_.data.childList || _loc2_.data.childList == PopUpManagerChildList.PARENT)
  1976.          {
  1977.             _loc3_ = Boolean(_loc2_.data.parent) && Boolean(popUpChildren.contains(_loc2_.data.parent));
  1978.          }
  1979.          else
  1980.          {
  1981.             _loc3_ = _loc2_.data.childList == PopUpManagerChildList.POPUP;
  1982.          }
  1983.          _loc4_ = _loc3_ ? popUpChildren : this;
  1984.          _loc4_.addChild(DisplayObject(_loc2_.data.window));
  1985.          if(_loc2_.data.modal)
  1986.          {
  1987.             ++numModalWindows;
  1988.          }
  1989.          var _loc5_:RemotePopUp = new RemotePopUp(_loc2_.data.window,_loc2_.requestor);
  1990.          forms.push(_loc5_);
  1991.          if(!isTopLevelRoot() && Boolean(swfBridgeGroup))
  1992.          {
  1993.             _loc7_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,false,false,_loc2_.requestor,{"window":_loc2_.data.window});
  1994.             _loc7_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(_loc2_.data.window));
  1995.             dispatchEvent(_loc7_);
  1996.          }
  1997.       }
  1998.       
  1999.       public function getTopLevelRoot() : DisplayObject
  2000.       {
  2001.          var sm:ISystemManager = null;
  2002.          var parent:DisplayObject = null;
  2003.          var lastParent:DisplayObject = null;
  2004.          try
  2005.          {
  2006.             sm = this;
  2007.             if(sm.topLevelSystemManager)
  2008.             {
  2009.                sm = ISystemManager(sm.topLevelSystemManager);
  2010.             }
  2011.             parent = DisplayObject(sm).parent;
  2012.             lastParent = parent;
  2013.             while(parent)
  2014.             {
  2015.                if(parent is Stage)
  2016.                {
  2017.                   return lastParent;
  2018.                }
  2019.                lastParent = parent;
  2020.                parent = parent.parent;
  2021.             }
  2022.          }
  2023.          catch(error:SecurityError)
  2024.          {
  2025.          }
  2026.          return null;
  2027.       }
  2028.       
  2029.       override public function setChildIndex(param1:DisplayObject, param2:int) : void
  2030.       {
  2031.          super.setChildIndex(param1,mx_internal::applicationIndex + param2);
  2032.       }
  2033.       
  2034.       mx_internal function regenerateStyleCache(param1:Boolean) : void
  2035.       {
  2036.          var _loc5_:IStyleClient = null;
  2037.          var _loc2_:Boolean = false;
  2038.          var _loc3_:int = int(rawChildren.numChildren);
  2039.          var _loc4_:int = 0;
  2040.          while(_loc4_ < _loc3_)
  2041.          {
  2042.             _loc5_ = rawChildren.getChildAt(_loc4_) as IStyleClient;
  2043.             if(_loc5_)
  2044.             {
  2045.                _loc5_.regenerateStyleCache(param1);
  2046.             }
  2047.             if(isTopLevelWindow(DisplayObject(_loc5_)))
  2048.             {
  2049.                _loc2_ = true;
  2050.             }
  2051.             _loc3_ = int(rawChildren.numChildren);
  2052.             _loc4_++;
  2053.          }
  2054.          if(!_loc2_ && mx_internal::topLevelWindow is IStyleClient)
  2055.          {
  2056.             IStyleClient(mx_internal::topLevelWindow).regenerateStyleCache(param1);
  2057.          }
  2058.       }
  2059.       
  2060.       private function activateRemotePopUp(param1:Object) : void
  2061.       {
  2062.          var _loc2_:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,false,false,param1.bridge,param1.window);
  2063.          var _loc3_:Object = param1.bridge;
  2064.          if(_loc3_)
  2065.          {
  2066.             _loc3_.dispatchEvent(_loc2_);
  2067.          }
  2068.       }
  2069.       
  2070.       mx_internal function set noTopMostIndex(param1:int) : void
  2071.       {
  2072.          var _loc2_:int = param1 - _noTopMostIndex;
  2073.          _noTopMostIndex = param1;
  2074.          mx_internal::topMostIndex += _loc2_;
  2075.       }
  2076.       
  2077.       public function set swfBridgeGroup(param1:ISWFBridgeGroup) : void
  2078.       {
  2079.          if(topLevel)
  2080.          {
  2081.             _swfBridgeGroup = param1;
  2082.          }
  2083.          else if(topLevelSystemManager)
  2084.          {
  2085.             SystemManager(topLevelSystemManager).swfBridgeGroup = param1;
  2086.          }
  2087.       }
  2088.       
  2089.       mx_internal function rawChildren_getChildAt(param1:int) : DisplayObject
  2090.       {
  2091.          return super.getChildAt(param1);
  2092.       }
  2093.       
  2094.       mx_internal function get topMostIndex() : int
  2095.       {
  2096.          return _topMostIndex;
  2097.       }
  2098.       
  2099.       private function addChildAndMouseCatcher() : void
  2100.       {
  2101.          var _loc1_:IUIComponent = mx_internal::topLevelWindow;
  2102.          mouseCatcher = new FlexSprite();
  2103.          mouseCatcher.name = "mouseCatcher";
  2104.          ++mx_internal::noTopMostIndex;
  2105.          super.addChildAt(mouseCatcher,0);
  2106.          resizeMouseCatcher();
  2107.          if(!topLevel)
  2108.          {
  2109.             mouseCatcher.visible = false;
  2110.             mask = mouseCatcher;
  2111.          }
  2112.          ++mx_internal::noTopMostIndex;
  2113.          super.addChild(DisplayObject(_loc1_));
  2114.       }
  2115.       
  2116.       mx_internal function rawChildren_setChildIndex(param1:DisplayObject, param2:int) : void
  2117.       {
  2118.          super.setChildIndex(param1,param2);
  2119.       }
  2120.       
  2121.       mx_internal function childAdded(param1:DisplayObject) : void
  2122.       {
  2123.          param1.dispatchEvent(new FlexEvent(FlexEvent.ADD));
  2124.          if(param1 is IUIComponent)
  2125.          {
  2126.             IUIComponent(param1).initialize();
  2127.          }
  2128.       }
  2129.       
  2130.       private function deactivateFormSandboxEventHandler(param1:Event) : void
  2131.       {
  2132.          if(param1 is SWFBridgeRequest)
  2133.          {
  2134.             return;
  2135.          }
  2136.          var _loc2_:SWFBridgeEvent = SWFBridgeEvent.marshal(param1);
  2137.          if(!forwardFormEvent(_loc2_))
  2138.          {
  2139.             if(isRemotePopUp(form) && RemotePopUp(form).window == _loc2_.data.window && RemotePopUp(form).bridge == _loc2_.data.notifier)
  2140.             {
  2141.                deactivateForm(form);
  2142.             }
  2143.          }
  2144.       }
  2145.       
  2146.       public function isFontFaceEmbedded(param1:TextFormat) : Boolean
  2147.       {
  2148.          var _loc6_:Font = null;
  2149.          var _loc7_:String = null;
  2150.          var _loc2_:String = param1.font;
  2151.          var _loc3_:Array = Font.enumerateFonts();
  2152.          var _loc4_:int = 0;
  2153.          while(_loc4_ < _loc3_.length)
  2154.          {
  2155.             _loc6_ = Font(_loc3_[_loc4_]);
  2156.             if(_loc6_.fontName == _loc2_)
  2157.             {
  2158.                _loc7_ = "regular";
  2159.                if(Boolean(param1.bold) && Boolean(param1.italic))
  2160.                {
  2161.                   _loc7_ = "boldItalic";
  2162.                }
  2163.                else if(param1.bold)
  2164.                {
  2165.                   _loc7_ = "bold";
  2166.                }
  2167.                else if(param1.italic)
  2168.                {
  2169.                   _loc7_ = "italic";
  2170.                }
  2171.                if(_loc6_.fontStyle == _loc7_)
  2172.                {
  2173.                   return true;
  2174.                }
  2175.             }
  2176.             _loc4_++;
  2177.          }
  2178.          if(!_loc2_ || !embeddedFontList || !embeddedFontList[_loc2_])
  2179.          {
  2180.             return false;
  2181.          }
  2182.          var _loc5_:Object = embeddedFontList[_loc2_];
  2183.          return !(Boolean(param1.bold) && !_loc5_.bold || Boolean(param1.italic) && !_loc5_.italic || !param1.bold && !param1.italic && !_loc5_.regular);
  2184.       }
  2185.       
  2186.       private function forwardPlaceholderRequest(param1:SWFBridgeRequest, param2:Boolean) : Boolean
  2187.       {
  2188.          if(isTopLevelRoot())
  2189.          {
  2190.             return false;
  2191.          }
  2192.          var _loc3_:Object = null;
  2193.          var _loc4_:String = null;
  2194.          if(param1.data.window)
  2195.          {
  2196.             _loc3_ = param1.data.window;
  2197.             param1.data.window = null;
  2198.          }
  2199.          else
  2200.          {
  2201.             _loc3_ = param1.requestor;
  2202.             _loc4_ = param1.data.placeHolderId;
  2203.             param1.data.placeHolderId = NameUtil.displayObjectToString(this) + "." + param1.data.placeHolderId;
  2204.          }
  2205.          if(param2)
  2206.          {
  2207.             addPlaceholderId(param1.data.placeHolderId,_loc4_,param1.requestor,_loc3_);
  2208.          }
  2209.          else
  2210.          {
  2211.             removePlaceholderId(param1.data.placeHolderId);
  2212.          }
  2213.          var _loc5_:DisplayObject = getSandboxRoot();
  2214.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  2215.          param1.requestor = _loc6_;
  2216.          if(_loc5_ == this)
  2217.          {
  2218.             _loc6_.dispatchEvent(param1);
  2219.          }
  2220.          else
  2221.          {
  2222.             _loc5_.dispatchEvent(param1);
  2223.          }
  2224.          return true;
  2225.       }
  2226.       
  2227.       private function updateLastActiveForm() : void
  2228.       {
  2229.          var _loc1_:int = int(forms.length);
  2230.          if(_loc1_ < 2)
  2231.          {
  2232.             return;
  2233.          }
  2234.          var _loc2_:int = -1;
  2235.          var _loc3_:int = 0;
  2236.          while(_loc3_ < _loc1_)
  2237.          {
  2238.             if(areFormsEqual(form,forms[_loc3_]))
  2239.             {
  2240.                _loc2_ = _loc3_;
  2241.                break;
  2242.             }
  2243.             _loc3_++;
  2244.          }
  2245.          if(_loc2_ >= 0)
  2246.          {
  2247.             forms.splice(_loc2_,1);
  2248.             forms.push(form);
  2249.             return;
  2250.          }
  2251.          throw new Error();
  2252.       }
  2253.       
  2254.       override public function removeEventListener(param1:String, param2:Function, param3:Boolean = false) : void
  2255.       {
  2256.          var newListener:StageEventProxy = null;
  2257.          var actualType:String = null;
  2258.          var type:String = param1;
  2259.          var listener:Function = param2;
  2260.          var useCapture:Boolean = param3;
  2261.          if(type == FlexEvent.RENDER || type == FlexEvent.ENTER_FRAME)
  2262.          {
  2263.             if(type == FlexEvent.RENDER)
  2264.             {
  2265.                type = Event.RENDER;
  2266.             }
  2267.             else
  2268.             {
  2269.                type = Event.ENTER_FRAME;
  2270.             }
  2271.             try
  2272.             {
  2273.                if(stage)
  2274.                {
  2275.                   stage.removeEventListener(type,listener,useCapture);
  2276.                }
  2277.                super.removeEventListener(type,listener,useCapture);
  2278.             }
  2279.             catch(error:SecurityError)
  2280.             {
  2281.                super.removeEventListener(type,listener,useCapture);
  2282.             }
  2283.             return;
  2284.          }
  2285.          if(type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN || type == Event.ACTIVATE || type == Event.DEACTIVATE)
  2286.          {
  2287.             try
  2288.             {
  2289.                if(stage)
  2290.                {
  2291.                   newListener = weakReferenceProxies[listener];
  2292.                   if(!newListener)
  2293.                   {
  2294.                      newListener = strongReferenceProxies[listener];
  2295.                      if(newListener)
  2296.                      {
  2297.                         delete strongReferenceProxies[listener];
  2298.                      }
  2299.                   }
  2300.                   if(newListener)
  2301.                   {
  2302.                      stage.removeEventListener(type,newListener.stageListener,false);
  2303.                   }
  2304.                }
  2305.             }
  2306.             catch(error:SecurityError)
  2307.             {
  2308.             }
  2309.          }
  2310.          if(hasSWFBridges() || SystemManagerGlobals.topLevelSystemManagers.length > 1)
  2311.          {
  2312.             actualType = EventUtil.sandboxMouseEventMap[type];
  2313.             if(actualType)
  2314.             {
  2315.                if(getSandboxRoot() == this && Boolean(eventProxy))
  2316.                {
  2317.                   super.removeEventListener(actualType,eventProxy.marshalListener,useCapture);
  2318.                }
  2319.                if(!SystemManagerGlobals.changingListenersInOtherSystemManagers)
  2320.                {
  2321.                   removeEventListenerFromOtherSystemManagers(type,otherSystemManagerMouseListener,useCapture);
  2322.                }
  2323.                removeEventListenerFromSandboxes(type,sandboxMouseListener,useCapture);
  2324.                super.removeEventListener(type,listener,false);
  2325.                return;
  2326.             }
  2327.          }
  2328.          super.removeEventListener(type,listener,useCapture);
  2329.       }
  2330.       
  2331.       override public function removeChildAt(param1:int) : DisplayObject
  2332.       {
  2333.          --mx_internal::noTopMostIndex;
  2334.          return mx_internal::rawChildren_removeChildAt(mx_internal::applicationIndex + param1);
  2335.       }
  2336.       
  2337.       mx_internal function rawChildren_removeChildAt(param1:int) : DisplayObject
  2338.       {
  2339.          var _loc2_:DisplayObject = super.getChildAt(param1);
  2340.          mx_internal::removingChild(_loc2_);
  2341.          super.removeChildAt(param1);
  2342.          mx_internal::childRemoved(_loc2_);
  2343.          return _loc2_;
  2344.       }
  2345.       
  2346.       private function deactivateRequestHandler(param1:Event) : void
  2347.       {
  2348.          var _loc5_:PlaceholderData = null;
  2349.          var _loc6_:RemotePopUp = null;
  2350.          var _loc7_:SystemManagerProxy = null;
  2351.          var _loc8_:IFocusManagerContainer = null;
  2352.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2353.          var _loc3_:Object = _loc2_.data;
  2354.          var _loc4_:String = null;
  2355.          if(_loc2_.data is String)
  2356.          {
  2357.             _loc5_ = idToPlaceholder[_loc2_.data];
  2358.             _loc3_ = _loc5_.data;
  2359.             _loc4_ = _loc5_.id;
  2360.             if(_loc4_ == null)
  2361.             {
  2362.                _loc6_ = findRemotePopUp(_loc3_,_loc5_.bridge);
  2363.                if(_loc6_)
  2364.                {
  2365.                   deactivateRemotePopUp(_loc6_);
  2366.                   return;
  2367.                }
  2368.             }
  2369.          }
  2370.          if(_loc3_ is SystemManagerProxy)
  2371.          {
  2372.             _loc7_ = SystemManagerProxy(_loc3_);
  2373.             _loc8_ = mx_internal::findFocusManagerContainer(_loc7_);
  2374.             if(Boolean(_loc7_) && Boolean(_loc8_))
  2375.             {
  2376.                _loc7_.deactivateByProxy(_loc8_);
  2377.             }
  2378.          }
  2379.          else
  2380.          {
  2381.             if(!(_loc3_ is IFocusManagerContainer))
  2382.             {
  2383.                if(_loc3_ is IEventDispatcher)
  2384.                {
  2385.                   _loc2_.data = _loc4_;
  2386.                   _loc2_.requestor = IEventDispatcher(_loc3_);
  2387.                   IEventDispatcher(_loc3_).dispatchEvent(_loc2_);
  2388.                   return;
  2389.                }
  2390.                throw new Error();
  2391.             }
  2392.             IFocusManagerContainer(_loc3_).focusManager.deactivate();
  2393.          }
  2394.       }
  2395.       
  2396.       private function deactivateForm(param1:Object) : void
  2397.       {
  2398.          if(form)
  2399.          {
  2400.             if(form == param1 && forms.length > 1)
  2401.             {
  2402.                if(isRemotePopUp(form))
  2403.                {
  2404.                   deactivateRemotePopUp(form);
  2405.                }
  2406.                else
  2407.                {
  2408.                   form.focusManager.deactivate();
  2409.                }
  2410.                form = findLastActiveForm(param1);
  2411.                if(form)
  2412.                {
  2413.                   if(isRemotePopUp(form))
  2414.                   {
  2415.                      activateRemotePopUp(form);
  2416.                   }
  2417.                   else
  2418.                   {
  2419.                      form.focusManager.activate();
  2420.                   }
  2421.                }
  2422.             }
  2423.          }
  2424.       }
  2425.       
  2426.       mx_internal function removingChild(param1:DisplayObject) : void
  2427.       {
  2428.          param1.dispatchEvent(new FlexEvent(FlexEvent.REMOVE));
  2429.       }
  2430.       
  2431.       mx_internal function set toolTipIndex(param1:int) : void
  2432.       {
  2433.          var _loc2_:int = param1 - _toolTipIndex;
  2434.          _toolTipIndex = param1;
  2435.          mx_internal::cursorIndex += _loc2_;
  2436.       }
  2437.       
  2438.       mx_internal function get applicationIndex() : int
  2439.       {
  2440.          return _applicationIndex;
  2441.       }
  2442.       
  2443.       private function hasSWFBridges() : Boolean
  2444.       {
  2445.          if(swfBridgeGroup)
  2446.          {
  2447.             return true;
  2448.          }
  2449.          return false;
  2450.       }
  2451.       
  2452.       override public function addChild(param1:DisplayObject) : DisplayObject
  2453.       {
  2454.          ++mx_internal::noTopMostIndex;
  2455.          return mx_internal::rawChildren_addChildAt(param1,mx_internal::noTopMostIndex - 1);
  2456.       }
  2457.       
  2458.       public function set numModalWindows(param1:int) : void
  2459.       {
  2460.          _numModalWindows = param1;
  2461.       }
  2462.       
  2463.       public function get cursorChildren() : IChildList
  2464.       {
  2465.          if(!topLevel)
  2466.          {
  2467.             return _topLevelSystemManager.cursorChildren;
  2468.          }
  2469.          if(!_cursorChildren)
  2470.          {
  2471.             _cursorChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"toolTipIndex"),new QName(mx_internal,"cursorIndex"));
  2472.          }
  2473.          return _cursorChildren;
  2474.       }
  2475.       
  2476.       mx_internal function rawChildren_getChildByName(param1:String) : DisplayObject
  2477.       {
  2478.          return super.getChildByName(param1);
  2479.       }
  2480.       
  2481.       private function isBridgeChildHandler(param1:Event) : void
  2482.       {
  2483.          if(param1 is SWFBridgeRequest)
  2484.          {
  2485.             return;
  2486.          }
  2487.          var _loc2_:Object = Object(param1);
  2488.          _loc2_.data = _loc2_.data && rawChildren.contains(_loc2_.data as DisplayObject);
  2489.       }
  2490.       
  2491.       mx_internal function rawChildren_addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  2492.       {
  2493.          mx_internal::addingChild(param1);
  2494.          super.addChildAt(param1,param2);
  2495.          mx_internal::childAdded(param1);
  2496.          return param1;
  2497.       }
  2498.       
  2499.       public function get topLevelSystemManager() : ISystemManager
  2500.       {
  2501.          if(topLevel)
  2502.          {
  2503.             return this;
  2504.          }
  2505.          return _topLevelSystemManager;
  2506.       }
  2507.       
  2508.       public function getVisibleApplicationRect(param1:Rectangle = null) : Rectangle
  2509.       {
  2510.          var _loc2_:Rectangle = null;
  2511.          var _loc3_:Point = null;
  2512.          var _loc4_:IEventDispatcher = null;
  2513.          var _loc5_:SWFBridgeRequest = null;
  2514.          if(!param1)
  2515.          {
  2516.             param1 = getBounds(DisplayObject(this));
  2517.             _loc2_ = screen;
  2518.             _loc3_ = new Point(Math.max(0,param1.x),Math.max(0,param1.y));
  2519.             _loc3_ = localToGlobal(_loc3_);
  2520.             param1.x = _loc3_.x;
  2521.             param1.y = _loc3_.y;
  2522.             param1.width = _loc2_.width;
  2523.             param1.height = _loc2_.height;
  2524.          }
  2525.          if(useSWFBridge())
  2526.          {
  2527.             _loc4_ = swfBridgeGroup.parentBridge;
  2528.             _loc5_ = new SWFBridgeRequest(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,false,false,_loc4_,param1);
  2529.             _loc4_.dispatchEvent(_loc5_);
  2530.             param1 = Rectangle(_loc5_.data);
  2531.          }
  2532.          return param1;
  2533.       }
  2534.       
  2535.       mx_internal function dispatchActivatedWindowEvent(param1:DisplayObject) : void
  2536.       {
  2537.          var _loc3_:DisplayObject = null;
  2538.          var _loc4_:* = false;
  2539.          var _loc5_:SWFBridgeEvent = null;
  2540.          var _loc2_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  2541.          if(_loc2_)
  2542.          {
  2543.             _loc3_ = getSandboxRoot();
  2544.             _loc4_ = _loc3_ != this;
  2545.             _loc5_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,false,false,{
  2546.                "notifier":_loc2_,
  2547.                "window":(_loc4_ ? param1 : NameUtil.displayObjectToString(param1))
  2548.             });
  2549.             if(_loc4_)
  2550.             {
  2551.                _loc3_.dispatchEvent(_loc5_);
  2552.             }
  2553.             else
  2554.             {
  2555.                _loc2_.dispatchEvent(_loc5_);
  2556.             }
  2557.          }
  2558.       }
  2559.       
  2560.       private function canActivateLocalComponent(param1:Object) : Boolean
  2561.       {
  2562.          if(param1 is Sprite && param1 is IUIComponent && Sprite(param1).visible && Boolean(IUIComponent(param1).enabled))
  2563.          {
  2564.             return true;
  2565.          }
  2566.          return false;
  2567.       }
  2568.       
  2569.       mx_internal function get noTopMostIndex() : int
  2570.       {
  2571.          return _noTopMostIndex;
  2572.       }
  2573.       
  2574.       private function activateRequestHandler(param1:Event) : void
  2575.       {
  2576.          var _loc5_:PlaceholderData = null;
  2577.          var _loc6_:RemotePopUp = null;
  2578.          var _loc7_:SystemManagerProxy = null;
  2579.          var _loc8_:IFocusManagerContainer = null;
  2580.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2581.          var _loc3_:Object = _loc2_.data;
  2582.          var _loc4_:String = null;
  2583.          if(_loc2_.data is String)
  2584.          {
  2585.             _loc5_ = idToPlaceholder[_loc2_.data];
  2586.             _loc3_ = _loc5_.data;
  2587.             _loc4_ = _loc5_.id;
  2588.             if(_loc4_ == null)
  2589.             {
  2590.                _loc6_ = findRemotePopUp(_loc3_,_loc5_.bridge);
  2591.                if(_loc6_)
  2592.                {
  2593.                   activateRemotePopUp(_loc6_);
  2594.                   return;
  2595.                }
  2596.             }
  2597.          }
  2598.          if(_loc3_ is SystemManagerProxy)
  2599.          {
  2600.             _loc7_ = SystemManagerProxy(_loc3_);
  2601.             _loc8_ = mx_internal::findFocusManagerContainer(_loc7_);
  2602.             if(Boolean(_loc7_) && Boolean(_loc8_))
  2603.             {
  2604.                _loc7_.activateByProxy(_loc8_);
  2605.             }
  2606.          }
  2607.          else if(_loc3_ is IFocusManagerContainer)
  2608.          {
  2609.             IFocusManagerContainer(_loc3_).focusManager.activate();
  2610.          }
  2611.          else
  2612.          {
  2613.             if(!(_loc3_ is IEventDispatcher))
  2614.             {
  2615.                throw new Error();
  2616.             }
  2617.             _loc2_.data = _loc4_;
  2618.             _loc2_.requestor = IEventDispatcher(_loc3_);
  2619.             IEventDispatcher(_loc3_).dispatchEvent(_loc2_);
  2620.          }
  2621.       }
  2622.       
  2623.       public function addChildToSandboxRoot(param1:String, param2:DisplayObject) : void
  2624.       {
  2625.          var _loc3_:InterManagerRequest = null;
  2626.          if(getSandboxRoot() == this)
  2627.          {
  2628.             this[param1].addChild(param2);
  2629.          }
  2630.          else
  2631.          {
  2632.             mx_internal::addingChild(param2);
  2633.             _loc3_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  2634.             _loc3_.name = param1 + ".addChild";
  2635.             _loc3_.value = param2;
  2636.             getSandboxRoot().dispatchEvent(_loc3_);
  2637.             mx_internal::childAdded(param2);
  2638.          }
  2639.       }
  2640.       
  2641.       mx_internal function childRemoved(param1:DisplayObject) : void
  2642.       {
  2643.          if(param1 is IUIComponent)
  2644.          {
  2645.             IUIComponent(param1).parentChanged(null);
  2646.          }
  2647.       }
  2648.       
  2649.       final mx_internal function $removeChildAt(param1:int) : DisplayObject
  2650.       {
  2651.          return super.removeChildAt(param1);
  2652.       }
  2653.       
  2654.       private function canActivatePopUp(param1:Object) : Boolean
  2655.       {
  2656.          var _loc2_:RemotePopUp = null;
  2657.          var _loc3_:SWFBridgeRequest = null;
  2658.          if(isRemotePopUp(param1))
  2659.          {
  2660.             _loc2_ = RemotePopUp(param1);
  2661.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,null,_loc2_.window);
  2662.             IEventDispatcher(_loc2_.bridge).dispatchEvent(_loc3_);
  2663.             return _loc3_.data;
  2664.          }
  2665.          if(canActivateLocalComponent(param1))
  2666.          {
  2667.             return true;
  2668.          }
  2669.          return false;
  2670.       }
  2671.       
  2672.       override public function get numChildren() : int
  2673.       {
  2674.          return mx_internal::noTopMostIndex - mx_internal::applicationIndex;
  2675.       }
  2676.       
  2677.       protected function initializeTopLevelWindow(param1:Event) : void
  2678.       {
  2679.          var _loc2_:IUIComponent = null;
  2680.          var _loc3_:DisplayObjectContainer = null;
  2681.          initialized = true;
  2682.          if(!parent)
  2683.          {
  2684.             return;
  2685.          }
  2686.          initContextMenu();
  2687.          if(!topLevel)
  2688.          {
  2689.             _loc3_ = parent.parent;
  2690.             if(!_loc3_)
  2691.             {
  2692.                return;
  2693.             }
  2694.             while(_loc3_)
  2695.             {
  2696.                if(_loc3_ is IUIComponent)
  2697.                {
  2698.                   _topLevelSystemManager = IUIComponent(_loc3_).systemManager;
  2699.                   break;
  2700.                }
  2701.                _loc3_ = _loc3_.parent;
  2702.             }
  2703.          }
  2704.          addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler,true);
  2705.          stage.addEventListener(Event.RESIZE,Stage_resizeHandler,false,0,true);
  2706.          document = _loc2_ = mx_internal::topLevelWindow;
  2707.          if(document)
  2708.          {
  2709.             if(topLevel && Boolean(stage))
  2710.             {
  2711.                _width = stage.stageWidth;
  2712.                _height = stage.stageHeight;
  2713.                IFlexDisplayObject(_loc2_).setActualSize(stage.stageWidth,stage.stageHeight);
  2714.             }
  2715.             else
  2716.             {
  2717.                IFlexDisplayObject(_loc2_).setActualSize(loaderInfo.width,loaderInfo.height);
  2718.             }
  2719.             mx_internal::addingChild(DisplayObject(_loc2_));
  2720.             mx_internal::childAdded(DisplayObject(_loc2_));
  2721.          }
  2722.          else
  2723.          {
  2724.             document = this;
  2725.          }
  2726.          addChildAndMouseCatcher();
  2727.       }
  2728.       
  2729.       final mx_internal function $addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  2730.       {
  2731.          return super.addChildAt(param1,param2);
  2732.       }
  2733.       
  2734.       private function areFormsEqual(param1:Object, param2:Object) : Boolean
  2735.       {
  2736.          if(param1 == param2)
  2737.          {
  2738.             return true;
  2739.          }
  2740.          if(param1 is RemotePopUp && param2 is RemotePopUp)
  2741.          {
  2742.             return areRemotePopUpsEqual(param1,param2);
  2743.          }
  2744.          return false;
  2745.       }
  2746.       
  2747.       public function get numModalWindows() : int
  2748.       {
  2749.          return _numModalWindows;
  2750.       }
  2751.       
  2752.       override public function get width() : Number
  2753.       {
  2754.          return _width;
  2755.       }
  2756.       
  2757.       private function dispatchActivatedApplicationEvent() : void
  2758.       {
  2759.          var _loc2_:SWFBridgeEvent = null;
  2760.          var _loc1_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  2761.          if(_loc1_)
  2762.          {
  2763.             _loc2_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,false,false);
  2764.             _loc1_.dispatchEvent(_loc2_);
  2765.          }
  2766.       }
  2767.       
  2768.       public function isTopLevelWindow(param1:DisplayObject) : Boolean
  2769.       {
  2770.          return param1 is IUIComponent && IUIComponent(param1) == mx_internal::topLevelWindow;
  2771.       }
  2772.       
  2773.       private function removePlaceholderId(param1:String) : void
  2774.       {
  2775.          delete idToPlaceholder[param1];
  2776.       }
  2777.       
  2778.       private function otherSystemManagerMouseListener(param1:SandboxMouseEvent) : void
  2779.       {
  2780.          if(dispatchingToSystemManagers)
  2781.          {
  2782.             return;
  2783.          }
  2784.          dispatchEventFromSWFBridges(param1);
  2785.          var _loc2_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  2786.          _loc2_.name = "sameSandbox";
  2787.          _loc2_.value = param1;
  2788.          getSandboxRoot().dispatchEvent(_loc2_);
  2789.          if(!_loc2_.value)
  2790.          {
  2791.             dispatchEvent(param1);
  2792.          }
  2793.       }
  2794.       
  2795.       private function hideMouseCursorRequestHandler(param1:Event) : void
  2796.       {
  2797.          var _loc3_:IEventDispatcher = null;
  2798.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  2799.          {
  2800.             return;
  2801.          }
  2802.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2803.          if(!isTopLevelRoot())
  2804.          {
  2805.             _loc3_ = swfBridgeGroup.parentBridge;
  2806.             _loc2_.requestor = _loc3_;
  2807.             _loc3_.dispatchEvent(_loc2_);
  2808.          }
  2809.          else if(eventProxy)
  2810.          {
  2811.             SystemManagerGlobals.showMouseCursor = false;
  2812.          }
  2813.       }
  2814.       
  2815.       public function isDisplayObjectInABridgedApplication(param1:DisplayObject) : Boolean
  2816.       {
  2817.          var _loc2_:SWFBridgeRequest = null;
  2818.          var _loc3_:Array = null;
  2819.          var _loc4_:int = 0;
  2820.          var _loc5_:int = 0;
  2821.          var _loc6_:IEventDispatcher = null;
  2822.          var _loc7_:ISWFBridgeProvider = null;
  2823.          if(swfBridgeGroup)
  2824.          {
  2825.             _loc2_ = new SWFBridgeRequest(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,false,false,null,param1);
  2826.             _loc3_ = swfBridgeGroup.getChildBridges();
  2827.             _loc4_ = int(_loc3_.length);
  2828.             _loc5_ = 0;
  2829.             while(_loc5_ < _loc4_)
  2830.             {
  2831.                _loc6_ = IEventDispatcher(_loc3_[_loc5_]);
  2832.                _loc7_ = swfBridgeGroup.getChildBridgeProvider(_loc6_);
  2833.                if(SecurityUtil.hasMutualTrustBetweenParentAndChild(_loc7_))
  2834.                {
  2835.                   _loc6_.dispatchEvent(_loc2_);
  2836.                   if(_loc2_.data == true)
  2837.                   {
  2838.                      return true;
  2839.                   }
  2840.                   _loc2_.data = param1;
  2841.                }
  2842.                _loc5_++;
  2843.             }
  2844.          }
  2845.          return false;
  2846.       }
  2847.       
  2848.       mx_internal function set window(param1:Window) : void
  2849.       {
  2850.          _window = param1;
  2851.       }
  2852.       
  2853.       private function activateFormSandboxEventHandler(param1:Event) : void
  2854.       {
  2855.          var _loc2_:SWFBridgeEvent = SWFBridgeEvent.marshal(param1);
  2856.          if(!forwardFormEvent(_loc2_))
  2857.          {
  2858.             activateForm(new RemotePopUp(_loc2_.data.window,_loc2_.data.notifier));
  2859.          }
  2860.       }
  2861.       
  2862.       public function get parentAllowsChild() : Boolean
  2863.       {
  2864.          try
  2865.          {
  2866.             return loaderInfo.parentAllowsChild;
  2867.          }
  2868.          catch(error:Error)
  2869.          {
  2870.          }
  2871.          return false;
  2872.       }
  2873.       
  2874.       mx_internal function get window() : Window
  2875.       {
  2876.          return _window;
  2877.       }
  2878.       
  2879.       mx_internal function addWindow(param1:Window) : void
  2880.       {
  2881.          myWindow = param1;
  2882.          myWindow.nativeWindow.addEventListener("close",mx_internal::cleanup);
  2883.       }
  2884.       
  2885.       mx_internal function rawChildren_addChild(param1:DisplayObject) : DisplayObject
  2886.       {
  2887.          mx_internal::addingChild(param1);
  2888.          super.addChild(param1);
  2889.          mx_internal::childAdded(param1);
  2890.          return param1;
  2891.       }
  2892.       
  2893.       mx_internal function addingChild(param1:DisplayObject) : void
  2894.       {
  2895.          var _loc4_:DisplayObjectContainer = null;
  2896.          var _loc2_:int = 1;
  2897.          if(!topLevel)
  2898.          {
  2899.             _loc4_ = parent.parent;
  2900.             while(_loc4_)
  2901.             {
  2902.                if(_loc4_ is ILayoutManagerClient)
  2903.                {
  2904.                   _loc2_ = ILayoutManagerClient(_loc4_).nestLevel + 1;
  2905.                   break;
  2906.                }
  2907.                _loc4_ = _loc4_.parent;
  2908.             }
  2909.          }
  2910.          mx_internal::nestLevel = _loc2_;
  2911.          if(param1 is IUIComponent)
  2912.          {
  2913.             IUIComponent(param1).systemManager = this;
  2914.          }
  2915.          var _loc3_:Class = Class(getDefinitionByName("mx.core.UIComponent"));
  2916.          if(param1 is IUIComponent && !IUIComponent(param1).document)
  2917.          {
  2918.             IUIComponent(param1).document = document;
  2919.          }
  2920.          if(param1 is ILayoutManagerClient)
  2921.          {
  2922.             ILayoutManagerClient(param1).nestLevel = mx_internal::nestLevel + 1;
  2923.          }
  2924.          if(param1 is InteractiveObject)
  2925.          {
  2926.             if(doubleClickEnabled)
  2927.             {
  2928.                InteractiveObject(param1).doubleClickEnabled = true;
  2929.             }
  2930.          }
  2931.          if(param1 is IUIComponent)
  2932.          {
  2933.             IUIComponent(param1).parentChanged(this);
  2934.          }
  2935.          if(param1 is IStyleClient)
  2936.          {
  2937.             IStyleClient(param1).regenerateStyleCache(true);
  2938.          }
  2939.          if(param1 is ISimpleStyleClient)
  2940.          {
  2941.             ISimpleStyleClient(param1).styleChanged(null);
  2942.          }
  2943.          if(param1 is IStyleClient)
  2944.          {
  2945.             IStyleClient(param1).notifyStyleChangeInChildren(null,true);
  2946.          }
  2947.          if(Boolean(_loc3_) && param1 is _loc3_)
  2948.          {
  2949.             _loc3_(param1).initThemeColor();
  2950.          }
  2951.          if(Boolean(_loc3_) && param1 is _loc3_)
  2952.          {
  2953.             _loc3_(param1).stylesInitialized();
  2954.          }
  2955.       }
  2956.    }
  2957. }
  2958.  
  2959.